From: krish on 9 Dec 2009 04:47 Hi, I am trying to develop a WDDM based display driver or windows 7.I am unable to know what need to be done in two of the calls namely DxgkDdiEnumVidPnCofuncModality DxgkDdiIsSupportedVidPn I tried to add an initial vidpn topology by implementing the DxgkDdiRecommendFunctionalVidPn call in the WDDM miniport driver. But starting from windows 7 i am unable to get the DxgkDdiRecommendFunctionalVidPn function call from dxgkrnl. After searching through the MSDN documentation i found out that the function is deprecated starting from windows 7. msdn link: http://msdn.microsoft.com/en-us/library/ee220395.aspx According to msdn "On a computer running Windows 7, the display mode manager (DMM) determines an appropriate VidPN topology to apply using VidPN history data in the CCD database. DMM no longer determines the VidPN topology based upon the last known good topology as it did in Windows Vista. Consequently, on Windows 7 DMM never calls the DxgkDdiRecommendVidPnTopology function." If so then how to provide initial vidpn topology? else how to add the vidpn topology in CCD persistent data base from which the DMM determines the functional vidpn? Else do we need to handle DxgkDdiEnumVidPnCofuncModality and DxgkDdiIsSupportedVidPn in a special way? I am unable to implement these two calls DxgkDdiEnumVidPnCofuncModality and DxgkDdiIsSupportedVidPn Please help me in this regard. Thanks & Regards Krish.
From: Ivan Brugiolo [MSFT] on 9 Dec 2009 19:51 Why do you want to provide an VidPn initial network ? If you provide the sources (and their changes) and the targets (those do not change), then the System will pick a resolution for you. This is the comment I added to a prototype virtual WDDM 1.1 driver I was working on end-of-summer. Be warned, EnumVidPnCofuncModality can be called a few thousands times during PnP-start or machine boot. The driver had 4 present-sources and 5 present-targets, but only 3 were active. At the end they were showing up as 3 monitors in desk.cpl. The call sequence is only for the first path of the topology. The other paths are not discussed for the sake of simplicity. NTSTATUS DxgkDdiEnumVidPnCofuncModality( __in CONST HANDLE hAdapter, __in CONST DXGKARG_ENUMVIDPNCOFUNCMODALITY* CONST pEnumCofuncModalityArg ) /*++ Routine description: The Video-Present-Network manager associated with the Miniport calls this function in order to make function-together `co-functional` the video-present-modes that were associated with the supplied video present network. The supplied topology has some constrains, and those must not be touched. The outcome of this function is either some extra pinned mode in the the mode-set for the sources or targets, or, some adjustment on specific properties for sources or targets. The process requires this function to be called multiple times. A possible call sequence is: Step 0 - Pivot = D3DKMDT_EPT_NOPIVOT Paths: (0 <-> 0) Source: N/A Target: N/A Step 1 - Pivot = D3DKMDT_EPT_NOPIVOT Paths: (0 <-> 0) (1 <-> 4) Source: N/A Target: N/A Step 2 - Pivot = D3DKMDT_EPT_NOPIVOT Paths: (0 <-> 0) (1 <-> 4) (2 <-> 3) Source: N/A Target: N/A Step 3 - Pivot = D3DKMDT_EPT_VIDPNSOURCE Paths: (0 <-> 0) (1 <-> 4) (2 <-> 3) Source: (0 => 1024x768(a)A8R8G8B8) Target: N/A Step 4 - Pivot = D3DKMDT_EPT_VIDPNTARGET Paths: (0 <-> 0) (1 <-> 4) (2 <-> 3) Source: (0 => 1024x768(a)A8R8G8B8) Target: (0 => 1024x768(a)75Hx) Step 5 - Pivot = D3DKMDT_EPT_SCALING Paths: (0 <-> 0) (IdentityScaling) (1 <-> 4) (2 <-> 3) Source: (0 => 1024x768(a)A8R8G8B8) Target: (0 => 1024x768(a)75Hz) Step 6 - Pivot = D3DKMDT_EPT_ROTATION Paths: (0 <-> 0) (IdentityScaling,UnRotated) (1 <-> 4) (2 <-> 3) Source: (0 => 1024x768(a)A8R8G8B8) Target: (0 => 1024x768(a)75Hz) Basically, the Video-Present-Network manager adds pieces one-by-one to the network (because paths are being added), and, for each path, it keeps adding constrains (for example source modes). --*/ -- -- This posting is provided "AS IS" with no warranties, and confers no rights. Use of any included script samples are subject to the terms specified at http://www.microsoft.com/info/cpyright.htm "krish" <drvkrish99(a)gmail.com> wrote in message news:e9d6f77e-62bf-49d5-a91d-e17fa1e5127e(a)v15g2000prn.googlegroups.com... > Hi, > > I am trying to develop a WDDM based display driver or windows 7.I > am unable to know what need to be done in two of the calls namely > > DxgkDdiEnumVidPnCofuncModality > DxgkDdiIsSupportedVidPn > > I tried to add an initial vidpn topology by implementing the > DxgkDdiRecommendFunctionalVidPn call in the WDDM miniport driver. > > But starting from windows 7 i am unable to get the > DxgkDdiRecommendFunctionalVidPn function call from dxgkrnl. After > searching through the MSDN documentation i found out that the function > is deprecated starting from windows 7. > > msdn link: http://msdn.microsoft.com/en-us/library/ee220395.aspx > > According to msdn > > "On a computer running Windows 7, the display mode manager (DMM) > determines an appropriate VidPN topology to apply using VidPN history > data in the CCD database. DMM no longer determines the VidPN topology > based upon the last known good topology as it did in Windows Vista. > Consequently, on Windows 7 DMM never calls the > DxgkDdiRecommendVidPnTopology function." > > If so then how to provide initial vidpn topology? > else how to add the vidpn topology in CCD persistent data base from > which the DMM determines the functional vidpn? > > Else do we need to handle DxgkDdiEnumVidPnCofuncModality and > DxgkDdiIsSupportedVidPn in a special way? > > > I am unable to implement these two calls > DxgkDdiEnumVidPnCofuncModality and DxgkDdiIsSupportedVidPn > > Please help me in this regard. > > Thanks & Regards > Krish. > >
From: Tim Roberts on 10 Dec 2009 01:20 "Ivan Brugiolo [MSFT]" <ivanbrug(a)online.microsoft.com> wrote: > >Why do you want to provide an VidPn initial network ? I'll take a stab at that. Because nowhere in the documentation does it say whether or not the driver NEEDS to do so. I don't know whether you've every read the "video present network" documentation from the point of view of a relative newcomer, but it is as impenetrable as any technical document I've ever read. >If you provide the sources (and their changes) and the targets >(those do not change), then the System will pick a resolution >for you. This is the comment I added to a prototype >virtual WDDM 1.1 driver I was working on end-of-summer. Is there any possibility that the source for your driver will be released to the huddled masses? There are no longer any good WDDM samples, and the API is rather vast. -- Tim Roberts, timr(a)probo.com Providenza & Boekelheide, Inc.
From: krish on 10 Dec 2009 04:48 On Dec 10, 11:20 am, Tim Roberts <t...(a)probo.com> wrote: > "Ivan Brugiolo [MSFT]" <ivanb...(a)online.microsoft.com> wrote: > > > > >Why do you want to provide anVidPninitial network ? > > I'll take a stab at that. Because nowhere in the documentation does it say > whether or not thedriverNEEDS to do so. I don't know whether you've > every read the "video present network" documentation from the point of view > of a relative newcomer, but it is as impenetrable as any technical document > I've ever read. > > >If you provide the sources (and their changes) and the targets > >(those do not change), then the System will pick a resolution > >for you. This is the comment I added to a prototype > >virtualWDDM1.1driverI was working on end-of-summer. > > Is there any possibility that the source for yourdriverwill be released > to the huddled masses? There are no longer any goodWDDMsamples, and the > API is rather vast. > -- > Tim Roberts, t...(a)probo.com > Providenza & Boekelheide, Inc. Hi, first of all my sincere thanks to Mr.Ivan and Mr.Tim for their responses. > If you provide the sources (and their changes) and the targets > (those do not change), then the System will pick a resolution > for you. Regarding the above do u mean to say we need to provide the no of video present sources and targets(children) in the start device? If so yes i had provided them in my start device. else r u suggesting to provide the source mode sets and target mode sets? if so where to provide can we do the same in DxgkDdiEnumVidPnCofuncModality? >This is the comment I added to a prototype > virtualWDDM1.1driverI was working on end-of-summer. Regarding ur Virtual WDDM 1.1 driver i am pretty interested to know what u did? if possible can u please share the same? it will be very helpfull for me to understand the WDDM frame work. > Thedriverhad 4 present-sources and 5 present-targets, > but only 3 were active. At the end they were showing up as 3 monitors > in desk.cpl. So u had returned to OS saying that only 3 of the 5 targets were connected.Hence only 3 monitors were seen in the desk.cpl? Now how did u control which source will be mapped to which of the active targets in the vidpn topology? > The Video-Present-Network manager associated with the Miniport > calls this function in order to make function-together `co-functional` > the video-present-modes that were associated with the supplied > video present network. Here i am able traverse the paths present in the topology and provided the source modes and target modes in DxgkDdiEnumVidPnCofuncModality? but as i press extend the desktop to this display i am getting unable to save Display settings error? what is the importance of DxgkDdiIsSupportedVidPn ? how it should be handled? > The supplied topology has some constrains, and those must not be > touched. As per my understanding after going through MSDN documentation the constraints are if a source or target is identified as the pivot of the enumeration, the mode set for that source or target must not change. If i am wrong please rectify me? if any additional constraints are there please explain? > Step 0 - Pivot = D3DKMDT_EPT_NOPIVOT > Paths: (0 <-> 0) > Source: N/A > Target: N/A > > Step 1 - Pivot = D3DKMDT_EPT_NOPIVOT > Paths: (0 <-> 0) > (1 <-> 4) > Source: N/A > Target: N/A > > Step 2 - Pivot = D3DKMDT_EPT_NOPIVOT > Paths: (0 <-> 0) > (1 <-> 4) > (2 <-> 3) > Source: N/A > Target: N/A > > Step 3 - Pivot = D3DKMDT_EPT_VIDPNSOURCE > Paths: (0 <-> 0) > (1 <-> 4) > (2 <-> 3) > Source: (0 => 1024x768(a)A8R8G8B8) > Target: N/A As per ur above mentioned calling sequence each time DxgkDdiEnumVidPnCofuncModality will be called first with only one path (0 <-> 0) , second time with two paths (0 <-> 0), (1 <-> 4) and so on with enum pivot as nopivot , how the OS knows that source id o is mapped to target id 0 and 1 is mapped to 4? In between in my analysis i saw DxgkDdiIsSupportedVidPn is called before calling DxgkDdiEnumVidPnCofuncModality ? what is the need do we need to return that the constraining vidpn is supported in DxgkDdiIsSupportedVidPn ? Alright by now u might have been fed up by my queries ? i will stop here please help me i am very much confused with these things and i am unable to find any help in this regard. It seems only WDK documentation is the only source of information i found till now which is not in detail. Thanks & Regards, Krish.
From: Ivan Brugiolo [MSFT] on 10 Dec 2009 16:16 I cannot speak on the record, [also because I no longer work in desktop/graphics related technologies], but, there was some talk around releasing a sample WDDM driver based on the SoftPCI simulation framework, once that sample would have been migrated to D3D10-11/WDDM1.1. The general problem with releasing sources of WDDM drivers, is the difference between WDDM 1.0 and 1.1 and the still missing or incomplete features from DX9/DX10/DX11 both in kernel and user mode. Many folks would have want that the DX9 implementation based on WDDM 1.0 would never have existed. But, at the time Vista released, there was not enough commodity DX10 hardware available in the market. Moreover DXGI/DX10/DX11 does not have DXVA2 support, and, providing a long-term good example for all technologies is largely complex exercise. -- This posting is provided "AS IS" with no warranties, and confers no rights. Use of any included script samples are subject to the terms specified at http://www.microsoft.com/info/cpyright.htm "Tim Roberts" <timr(a)probo.com> wrote in message news:3k41i51t1ugeb38ae5pqsni87pj88n1ovb(a)4ax.com... > "Ivan Brugiolo [MSFT]" <ivanbrug(a)online.microsoft.com> wrote: >> >>Why do you want to provide an VidPn initial network ? > > I'll take a stab at that. Because nowhere in the documentation does it > say > whether or not the driver NEEDS to do so. I don't know whether you've > every read the "video present network" documentation from the point of > view > of a relative newcomer, but it is as impenetrable as any technical > document > I've ever read. > >>If you provide the sources (and their changes) and the targets >>(those do not change), then the System will pick a resolution >>for you. This is the comment I added to a prototype >>virtual WDDM 1.1 driver I was working on end-of-summer. > > Is there any possibility that the source for your driver will be released > to the huddled masses? There are no longer any good WDDM samples, and the > API is rather vast. > -- > Tim Roberts, timr(a)probo.com > Providenza & Boekelheide, Inc.
|
Next
|
Last
Pages: 1 2 3 4 Prev: A KeQuerySystemTime alternate function under x64 ? Next: Signing driver for virtual com port |