Bug 41740

Summary: Mesa 7.12-devel gallium/state_trackers/d3d1x compilation error
Product: Mesa Reporter: Jos van Wolput <wolput>
Component: OtherAssignee: mesa-dev
Status: RESOLVED WONTFIX QA Contact:
Severity: normal    
Priority: medium CC: alexandre.f.demers, e0425955, luca.barbieri
Version: git   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:

Description Jos van Wolput 2011-10-12 20:35:35 UTC
Compiling Mesa 7.12-devel configured with --enable-d3d1x shows the folowing error:
---
In file included from d3d11.cpp:220:0:
d3d11_context.h: In member function ‘void GalliumD3D11DeviceContext<PtrTraits>::init_context()’:
d3d11_context.h:153:34: error: ‘screen’ was not declared in this scope
d3d11.cpp: In function ‘HRESULT GalliumD3D11DeviceCreate(pipe_screen*, pipe_context*, BOOL, unsigned int, IDXGIAdapter*, ID3D11Device**)’:
d3d11.cpp:224:200: error: new declaration ‘HRESULT GalliumD3D11DeviceCreate(pipe_screen*, pipe_context*, BOOL, unsigned int, IDXGIAdapter*, ID3D11Device**)’
../gd3dapi/galliumd3d11.h:65:10: error: ambiguates old declaration ‘HRESULT GalliumD3D11DeviceCreate(pipe_screen*, pipe_context*, BOOL, unsigned int, IDXGIAdapter*, ID3D11Device**)’
In file included from d3d11.cpp:220:0:
d3d11_context.h: In member function ‘HRESULT GalliumD3D11DeviceContext<PtrTraits>::Map(ID3D11Resource*, unsigned int, D3D11_MAP, unsigned int, D3D11_MAPPED_SUBRESOURCE*) [with PtrTraits = nonatomic_device_child_ptr_traits, HRESULT = int, ID3D11Resource = ID3D11Resource, D3D11_MAP = D3D11_MAP, D3D11_MAPPED_SUBRESOURCE = D3D11_MAPPED_SUBRESOURCE]’:
d3d11.cpp:231:1:   instantiated from here
d3d11_context.h:1484:12: warning: unused variable ‘face’ [-Wunused-variable]
d3d11_context.h: In member function ‘void GalliumD3D11DeviceContext<PtrTraits>::CopySubresourceRegion(ID3D11Resource*, unsigned int, unsigned int, unsigned int, unsigned int, ID3D11Resource*, unsigned int, const D3D11_BOX*) [with PtrTraits = nonatomic_device_child_ptr_traits, ID3D11Resource = ID3D11Resource, D3D11_BOX = D3D11_BOX]’:
d3d11.cpp:231:1:   instantiated from here
d3d11_context.h:1545:12: warning: unused variable ‘dst_face’ [-Wunused-variable]
d3d11_context.h:1547:12: warning: unused variable ‘src_face’ [-Wunused-variable]
make[5]: *** [d3d11.o] Error 1
make[5]: Leaving directory `/home/jos/src/xorg/git-master/mesa/src/gallium/state_trackers/d3d1x/gd3d11'
make[4]: *** [all] Error 2
make[4]: Leaving directory `/home/jos/src/xorg/git-master/mesa/src/gallium/state_trackers/d3d1x'
make[3]: *** [subdirs] Error 1
make[3]: Leaving directory `/home/jos/src/xorg/git-master/mesa/src/gallium/state_trackers'
make[2]: *** [default] Error 1
make[2]: Leaving directory `/home/jos/src/xorg/git-master/mesa/src/gallium'
make[1]: *** [subdirs] Error 1
make[1]: Leaving directory `/home/jos/src/xorg/git-master/mesa/src'
make: *** [default] Error 1
---
Make Mesa 7.11 produces a similar error.
Comment 1 Christoph Bumiller 2011-10-13 02:09:40 UTC
Fixed in mesa/master with f1f7645f23bd11fb54a992cdbe9ef0a6ee0136f3.
Comment 2 Jos van Wolput 2011-10-13 03:52:54 UTC
(In reply to comment #1)
> Fixed in mesa/master with f1f7645f23bd11fb54a992cdbe9ef0a6ee0136f3.
Still some errors:
---
d3d11.cpp: In function ‘HRESULT GalliumD3D11DeviceCreate(pipe_screen*, pipe_context*, BOOL, unsigned int, IDXGIAdapter*, ID3D11Device**)’:
d3d11.cpp:224:200: error: new declaration ‘HRESULT GalliumD3D11DeviceCreate(pipe_screen*, pipe_context*, BOOL, unsigned int, IDXGIAdapter*, ID3D11Device**)’
../gd3dapi/galliumd3d11.h:65:10: error: ambiguates old declaration ‘HRESULT GalliumD3D11DeviceCreate(pipe_screen*, pipe_context*, BOOL, unsigned int, IDXGIAdapter*, ID3D11Device**)’
In file included from d3d11.cpp:220:0:
d3d11_context.h: In member function ‘HRESULT GalliumD3D11DeviceContext<PtrTraits>::Map(ID3D11Resource*, unsigned int, D3D11_MAP, unsigned int, D3D11_MAPPED_SUBRESOURCE*) [with PtrTraits = nonatomic_device_child_ptr_traits, HRESULT = int, ID3D11Resource = ID3D11Resource, D3D11_MAP = D3D11_MAP, D3D11_MAPPED_SUBRESOURCE = D3D11_MAPPED_SUBRESOURCE]’:
d3d11.cpp:231:1:   instantiated from here
d3d11_context.h:1482:12: warning: unused variable ‘face’ [-Wunused-variable]
d3d11_context.h: In member function ‘void GalliumD3D11DeviceContext<PtrTraits>::CopySubresourceRegion(ID3D11Resource*, unsigned int, unsigned int, unsigned int, unsigned int, ID3D11Resource*, unsigned int, const D3D11_BOX*) [with PtrTraits = nonatomic_device_child_ptr_traits, ID3D11Resource = ID3D11Resource, D3D11_BOX = D3D11_BOX]’:
d3d11.cpp:231:1:   instantiated from here
d3d11_context.h:1543:12: warning: unused variable ‘dst_face’ [-Wunused-variable]
d3d11_context.h:1545:12: warning: unused variable ‘src_face’ [-Wunused-variable]
make[5]: *** [d3d11.o] Error 1
make[5]: Leaving directory `/home/jos/src/xorg/git-master/mesa/src/gallium/state_trackers/d3d1x/gd3d11'
make[4]: *** [all] Error 2
make[4]: Leaving directory `/home/jos/src/xorg/git-master/mesa/src/gallium/state_trackers/d3d1x'
make[3]: *** [subdirs] Error 1
make[3]: Leaving directory `/home/jos/src/xorg/git-master/mesa/src/gallium/state_trackers'
make[2]: *** [default] Error 1
make[2]: Leaving directory `/home/jos/src/xorg/git-master/mesa/src/gallium'
make[1]: *** [subdirs] Error 1
make[1]: Leaving directory `/home/jos/src/xorg/git-master/mesa/src'
make: *** [default] Error 1
---
Comment 3 Jos van Wolput 2011-10-16 19:33:06 UTC
(In reply to comment #1)
> Fixed in mesa/master with f1f7645f23bd11fb54a992cdbe9ef0a6ee0136f3.
I downloaded a fresh git clone of mesa and still get d3dlx compilation errors:
---
d3d11.cpp: In function ‘HRESULT GalliumD3D11DeviceCreate(pipe_screen*, pipe_context*, BOOL, unsigned int, IDXGIAdapter*, ID3D11Device**)’:
d3d11.cpp:224:200: error: new declaration ‘HRESULT GalliumD3D11DeviceCreate(pipe_screen*, pipe_context*, BOOL, unsigned int, IDXGIAdapter*, ID3D11Device**)’
../gd3dapi/galliumd3d11.h:65:10: error: ambiguates old declaration ‘HRESULT GalliumD3D11DeviceCreate(pipe_screen*, pipe_context*, BOOL, unsigned int, IDXGIAdapter*, ID3D11Device**)’
In file included from d3d11.cpp:220:0:
d3d11_context.h: In member function ‘HRESULT GalliumD3D11DeviceContext<PtrTraits>::Map(ID3D11Resource*, unsigned int, D3D11_MAP, unsigned int, D3D11_MAPPED_SUBRESOURCE*) [with PtrTraits = nonatomic_device_child_ptr_traits, HRESULT = int, ID3D11Resource = ID3D11Resource, D3D11_MAP = D3D11_MAP, D3D11_MAPPED_SUBRESOURCE = D3D11_MAPPED_SUBRESOURCE]’:
d3d11.cpp:231:1:   instantiated from here
d3d11_context.h:1482:12: warning: unused variable ‘face’ [-Wunused-variable]
d3d11_context.h: In member function ‘void GalliumD3D11DeviceContext<PtrTraits>::CopySubresourceRegion(ID3D11Resource*, unsigned int, unsigned int, unsigned int, unsigned int, ID3D11Resource*, unsigned int, const D3D11_BOX*) [with PtrTraits = nonatomic_device_child_ptr_traits, ID3D11Resource = ID3D11Resource, D3D11_BOX = D3D11_BOX]’:
d3d11.cpp:231:1:   instantiated from here
d3d11_context.h:1543:12: warning: unused variable ‘dst_face’ [-Wunused-variable]
d3d11_context.h:1545:12: warning: unused variable ‘src_face’ [-Wunused-variable]
make[5]: *** [d3d11.o] Error 1
make[5]: Leaving directory `/home/jos/src/xorg/git-master/mesa/src/gallium/state_trackers/d3d1x/gd3d11'
make[4]: *** [all] Error 2
make[4]: Leaving directory `/home/jos/src/xorg/git-master/mesa/src/gallium/state_trackers/d3d1x'
make[3]: *** [subdirs] Error 1
---
Comment 4 Alexandre Demers 2011-11-02 22:21:25 UTC
Same problem over here. Many errors related to either missing "STDMETHODCALLTYPE" in declarations or unneeded "STDMETHODCALLTYPE" in associated files. Compiler doesn't like it because returned values are not of the same types as declared ones. It leads to "error: new declaration... error: ambiguates old declaration..."

I was about to propose a patch, but I can't figure out if "STDMETHODCALLTYPE" are needed or not (I would say they are, but one commit (a73c6ce67b272b71dc814b3384d8c1c99f6c75e3) says it causes crashes)
Comment 5 Alexandre Demers 2011-11-02 22:23:54 UTC
Added Luca since he may have more info on the problem.
Comment 6 Christoph Bumiller 2011-11-03 04:22:21 UTC
Which versions of gcc and wine are you using ? I still don't get these errors with gcc-4.4 (going to update to 4.6 now).
Comment 7 Alexandre Demers 2011-11-03 05:13:11 UTC
I should have added that info. Using Ubuntu Oneiric 64bit, running  gcc 4.6.1 and wine 1.3.31.
Comment 8 Jos van Wolput 2011-11-03 06:03:25 UTC
(In reply to comment #6)
> Which versions of gcc and wine are you using ? I still don't get these errors
> with gcc-4.4 (going to update to 4.6 now).

Using Debian Sid 64bit, running gcc 4.6.2-3 and wine 1.3.31.
I also tried gcc-4.5, getting the same errors.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.