Re: [1/10] - [10/10] WineD3D
On Friday 16 February 2007, H. Verbeet wrote: > On 16/02/07, Neil Skrypuch <[EMAIL PROTECTED]> wrote: > > http://otc.dyndns.org/stuff/wineshots/3dmark_capshack.patch > > That won't apply/compile anymore, use the attached patch instead. Ah, thanks, I didn't notice that. It applied just a few days ago. I updated my link as well. - Neil
Re: [1/10] - [10/10] WineD3D
On 16/02/07, Neil Skrypuch <[EMAIL PROTECTED]> wrote: http://otc.dyndns.org/stuff/wineshots/3dmark_capshack.patch That won't apply/compile anymore, use the attached patch instead. --- dlls/wined3d/directx.c |7 --- 1 files changed, 4 insertions(+), 3 deletions(-) diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c index 841e16f..ca3eaaf 100644 --- a/dlls/wined3d/directx.c +++ b/dlls/wined3d/directx.c @@ -585,7 +585,7 @@ BOOL IWineD3DImpl_FillGLCaps(IWineD3D *iface, Display* display) { glGetIntegerv(GL_MAX_TEXTURE_UNITS_ARB, &gl_max); TRACE_(d3d_caps)(" FOUND: ARB Multitexture support - GL_MAX_TEXTURE_UNITS_ARB=%u\n", gl_max); gl_info->supported[ARB_MULTITEXTURE] = TRUE; -gl_info->max_textures = min(MAX_TEXTURES, gl_max); +gl_info->max_textures = 8; gl_info->max_texture_stages = min(MAX_TEXTURES, gl_max); gl_info->max_samplers = max(gl_info->max_samplers, gl_max); } else if (strcmp(ThisExtn, "GL_ARB_texture_cube_map") == 0) { @@ -2196,7 +2196,7 @@ static HRESULT WINAPI IWineD3DImpl_GetDeviceCaps(IWineD3D *iface, UINT Adapter, *pCaps->MaxVertexBlendMatrixIndex = 1; *pCaps->MaxAnisotropy = GL_LIMITS(anisotropy); -*pCaps->MaxPointSize= GL_LIMITS(pointsize); +*pCaps->MaxPointSize= 64.0f; *pCaps->VertexProcessingCaps = WINED3DVTXPCAPS_DIRECTIONALLIGHTS | @@ -2294,7 +2294,8 @@ static HRESULT WINAPI IWineD3DImpl_GetDeviceCaps(IWineD3D *iface, UINT Adapter, *pCaps->NumSimultaneousRTs = GL_LIMITS(buffers); -*pCaps->StretchRectFilterCaps = 0; +*pCaps->StretchRectFilterCaps = WINED3DPTFILTERCAPS_MINFLINEAR | + WINED3DPTFILTERCAPS_MAGFLINEAR; *pCaps->VertexTextureFilterCaps = 0; if(*pCaps->VertexShaderVersion == WINED3DVS_VERSION(3,0)) {
Re: [1/10] - [10/10] WineD3D
On Wednesday 14 February 2007, Mirek wrote: > Luke Bratch napsal(a): > >> Wow, great work! 3DMark 2006 with fbo looks > > > > realy coool!! And some > > > >> Nvidia SDK demos are completly fixed! > > > > How did you test 3DMark2006? When I try and run it, > > it tells me I need Pixel Shader 2.0 support. > > > > I have UseGLSL set to enabled and OffscreenRenderMode > > set to fbo, and the Pixel Shader 2 test in 3DMark03 > > works fine. > > Yes, but after accept this error message i can select some test and run > benchmark, i have full version v102. I can't run any PS3 HDR test, GT1 > and GT2 tests are almost perfect, but very slow (fbo is slower than > backbuffer, so I am not using it in other applications), you should also > disable post procesing (very very slow) in 3DMark. Here are some > screenshots with latest wine and latest Stefan patches: > http://62.240.181.87/Mirek/3DMark2006/ > > PS: I have GF 6800GS, Core 2 Duo [EMAIL PROTECTED] and about 2 FPS, but it > works! :) > > Mirek 3DMark 05 and 06 are quite picky about caps, there's a few that are slightly off and it refuses to run, you can apply this hack to make it work: http://otc.dyndns.org/stuff/wineshots/3dmark_capshack.patch This may also be of interest: http://bugs.winehq.org/show_bug.cgi?id=7434 - Neil
[1/10] - [10/10] WineD3D
> Wow, great work! 3DMark 2006 with fbo looks realy coool!! And some > Nvidia SDK demos are completly fixed! How did you test 3DMark2006? When I try and run it, it tells me I need Pixel Shader 2.0 support. I have UseGLSL set to enabled and OffscreenRenderMode set to fbo, and the Pixel Shader 2 test in 3DMark03 works fine. ___ New Yahoo! Mail is the ultimate force in competitive emailing. Find out more at the Yahoo! Mail Championships. Plus: play games and win prizes. http://uk.rd.yahoo.com/evt=44106/*http://mail.yahoo.net/uk
Re: [1/10] - [10/10] WineD3D
Luke Bratch napsal(a): Wow, great work! 3DMark 2006 with fbo looks realy coool!! And some Nvidia SDK demos are completly fixed! How did you test 3DMark2006? When I try and run it, it tells me I need Pixel Shader 2.0 support. I have UseGLSL set to enabled and OffscreenRenderMode set to fbo, and the Pixel Shader 2 test in 3DMark03 works fine. Yes, but after accept this error message i can select some test and run benchmark, i have full version v102. I can't run any PS3 HDR test, GT1 and GT2 tests are almost perfect, but very slow (fbo is slower than backbuffer, so I am not using it in other applications), you should also disable post procesing (very very slow) in 3DMark. Here are some screenshots with latest wine and latest Stefan patches: http://62.240.181.87/Mirek/3DMark2006/ PS: I have GF 6800GS, Core 2 Duo [EMAIL PROTECTED] and about 2 FPS, but it works! :) Mirek
Re: [1/10] - [10/10] WineD3D
Am Mittwoch 14 Februar 2007 20:11 schrieb Mirek: > Wow, great work! 3DMark 2006 with fbo looks realy coool!! And some > Nvidia SDK demos are completly fixed! Though I doubt that patch fixed it. You can do a regression test to find the patch that fixed it if you want, but last I tried to look for a fix I had to revert the sense of good and bad > Mirek > > Stefan Dösinger napsal(a): > > > > > > From c59f7c4eea148cfb9a1321c587ef52194bc9 Mon Sep 17 00:00:00 2001 > > From: Stefan Doesinger <[EMAIL PROTECTED]> > > Date: Fri, 2 Feb 2007 15:30:34 +0100 > > Subject: [PATCH] WineD3D: Properly release the converted vertex > > declaration > > > > --- > > dlls/d3d9/d3d9_private.h |5 + > > dlls/d3d9/device.c|3 +++ > > dlls/d3d9/vertexdeclaration.c |5 + > > 3 files changed, 13 insertions(+), 0 deletions(-) > > > > diff --git a/dlls/d3d9/d3d9_private.h b/dlls/d3d9/d3d9_private.h > > index 435a37e..972945d 100644 > > --- a/dlls/d3d9/d3d9_private.h > > +++ b/dlls/d3d9/d3d9_private.h > > @@ -179,6 +179,11 @@ typedef struct IDirect3DDevice9Impl > > /* Avoids recursion with nested ReleaseRef to 0 */ > > BOOL inDestruction; > > > > +/* A vertex declaration was converted from setFVF. > > + * Keep track of it, so it can be properly freed > > + */ > > +IDirect3DVertexDeclaration9 *convertedDecl; > > + > > } IDirect3DDevice9Impl; > > > > > > diff --git a/dlls/d3d9/device.c b/dlls/d3d9/device.c > > index 4eff550..e6ecd96 100644 > > --- a/dlls/d3d9/device.c > > +++ b/dlls/d3d9/device.c > > @@ -62,6 +62,8 @@ static ULONG WINAPI > > IDirect3DDevice9Impl_Release(LPDIRECT3DDEVICE9 iface) { > > > > if (ref == 0) { > >This->inDestruction = TRUE; > > + if (This->convertedDecl != NULL) > > + IUnknown_Release(This->convertedDecl); > >IWineD3DDevice_Uninit3D(This->WineD3DDevice, > > D3D9CB_DestroyDepthStencilSurface, D3D9CB_DestroySwapChain); > > IWineD3DDevice_Release(This->WineD3DDevice); > >HeapFree(GetProcessHeap(), 0, This); > > @@ -766,6 +768,7 @@ HRESULT WINAPI > > IDirect3DDevice9Impl_SetFVF(LPDIRECT3DDEVICE9 iface, DWORD FVF) > > > > hr = IDirect3DDevice9Impl_SetVertexDeclaration(iface, pDecl); > > if (hr != S_OK) goto exit; > > + This->convertedDecl = pDecl; > > pDecl = NULL; > > > > exit: > > diff --git a/dlls/d3d9/vertexdeclaration.c > > b/dlls/d3d9/vertexdeclaration.c index a7f5486..c3f462e 100644 > > --- a/dlls/d3d9/vertexdeclaration.c > > +++ b/dlls/d3d9/vertexdeclaration.c > > @@ -360,6 +360,11 @@ HRESULT WINAPI > > IDirect3DDevice9Impl_SetVertexDeclaration(LPDIRECT3DDEVICE9 ifa > > > > TRACE("(%p) : Relay\n", iface); > > > > +if (This->convertedDecl && This->convertedDecl != pDecl) { > > +IUnknown_Release(This->convertedDecl); > > +This->convertedDecl = NULL; > > +} > > + > > hr = IWineD3DDevice_SetVertexDeclaration(This->WineD3DDevice, > > pDeclImpl == NULL ? NULL : pDeclImpl->wineD3DVertexDeclaration); > > > > return hr; > > > > > > pgpQcz0JQgoua.pgp Description: PGP signature
Re: [1/10] - [10/10] WineD3D
Wow, great work! 3DMark 2006 with fbo looks realy coool!! And some Nvidia SDK demos are completly fixed! Mirek Stefan Dösinger napsal(a): From c59f7c4eea148cfb9a1321c587ef52194bc9 Mon Sep 17 00:00:00 2001 From: Stefan Doesinger <[EMAIL PROTECTED]> Date: Fri, 2 Feb 2007 15:30:34 +0100 Subject: [PATCH] WineD3D: Properly release the converted vertex declaration --- dlls/d3d9/d3d9_private.h |5 + dlls/d3d9/device.c|3 +++ dlls/d3d9/vertexdeclaration.c |5 + 3 files changed, 13 insertions(+), 0 deletions(-) diff --git a/dlls/d3d9/d3d9_private.h b/dlls/d3d9/d3d9_private.h index 435a37e..972945d 100644 --- a/dlls/d3d9/d3d9_private.h +++ b/dlls/d3d9/d3d9_private.h @@ -179,6 +179,11 @@ typedef struct IDirect3DDevice9Impl /* Avoids recursion with nested ReleaseRef to 0 */ BOOL inDestruction; +/* A vertex declaration was converted from setFVF. + * Keep track of it, so it can be properly freed + */ +IDirect3DVertexDeclaration9 *convertedDecl; + } IDirect3DDevice9Impl; diff --git a/dlls/d3d9/device.c b/dlls/d3d9/device.c index 4eff550..e6ecd96 100644 --- a/dlls/d3d9/device.c +++ b/dlls/d3d9/device.c @@ -62,6 +62,8 @@ static ULONG WINAPI IDirect3DDevice9Impl_Release(LPDIRECT3DDEVICE9 iface) { if (ref == 0) { This->inDestruction = TRUE; + if (This->convertedDecl != NULL) + IUnknown_Release(This->convertedDecl); IWineD3DDevice_Uninit3D(This->WineD3DDevice, D3D9CB_DestroyDepthStencilSurface, D3D9CB_DestroySwapChain); IWineD3DDevice_Release(This->WineD3DDevice); HeapFree(GetProcessHeap(), 0, This); @@ -766,6 +768,7 @@ HRESULT WINAPI IDirect3DDevice9Impl_SetFVF(LPDIRECT3DDEVICE9 iface, DWORD FVF) hr = IDirect3DDevice9Impl_SetVertexDeclaration(iface, pDecl); if (hr != S_OK) goto exit; + This->convertedDecl = pDecl; pDecl = NULL; exit: diff --git a/dlls/d3d9/vertexdeclaration.c b/dlls/d3d9/vertexdeclaration.c index a7f5486..c3f462e 100644 --- a/dlls/d3d9/vertexdeclaration.c +++ b/dlls/d3d9/vertexdeclaration.c @@ -360,6 +360,11 @@ HRESULT WINAPI IDirect3DDevice9Impl_SetVertexDeclaration(LPDIRECT3DDEVICE9 ifa TRACE("(%p) : Relay\n", iface); +if (This->convertedDecl && This->convertedDecl != pDecl) { +IUnknown_Release(This->convertedDecl); +This->convertedDecl = NULL; +} + hr = IWineD3DDevice_SetVertexDeclaration(This->WineD3DDevice, pDeclImpl == NULL ? NULL : pDeclImpl->wineD3DVertexDeclaration); return hr;