The if check isn't that correct either.
If MAX_COMBINED_SAMPLERS >= 8 + 3 everything's fine too. d3d9 only supports 8 fixed function frag samplers and 3 vertex samplers at max, so even if we can't use all GL samplers together, we're still fine if we have 11 samplers available for the purpose of this test. This should silence the frag=16, vertex=16, total=16 complaint on d3d10 cards
Am Samstag, 14. März 2009 15:45:58 schrieb André Hentschel:
In comment it sais: 'This is true if vsamplers + MAX_TEXTURES <= max_samplers.' The if-query asks for "MAX_TEXTURES + gl_info->max_vertex_samplers > gl_info->max_combined_samplers",which is ok. But the FIXME then has to say that it was expected to be smaller than max_combined_samplers.
dlls/wined3d/directx.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c index 2ec60d4..7c67638 100644 --- a/dlls/wined3d/directx.c +++ b/dlls/wined3d/directx.c @@ -912,7 +912,7 @@ static BOOL IWineD3DImpl_FillGLCaps(WineD3D_GL_Info *gl_info) { MAX_TEXTURES + gl_info->max_vertex_samplers > gl_info->max_combined_samplers) { FIXME("OpenGL implementation supports %u vertex samplers and %u total samplers\n", gl_info->max_vertex_samplers, gl_info->max_combined_samplers);
FIXME("Expected vertex samplers + MAX_TEXTURES(=8)
combined_samplers\n");
FIXME("Expected vertex samplers + MAX_TEXTURES(=8)
<= combined_samplers\n"); if( gl_info->max_combined_samplers > MAX_TEXTURES ) gl_info->max_vertex_samplers = gl_info->max_combined_samplers - MAX_TEXTURES;
2009/3/14 Stefan Dösinger stefan@codeweavers.com:
The if check isn't that correct either.
If MAX_COMBINED_SAMPLERS >= 8 + 3 everything's fine too. d3d9 only supports 8 fixed function frag samplers and 3 vertex samplers at max, so even if we can't use all GL samplers together, we're still fine if we have 11 samplers available for the purpose of this test. This should silence the frag=16, vertex=16, total=16 complaint on d3d10 cards
D3d9 supports 4 vertex samplers max, but that aside. In d3d10 this is not a problem either, because you don't have fixed function there.
On that subject, I think it would make sense to have some flags we can pass to WineDirect3DCreate() to allow us to make some assumptions about what the d3d client library will/won't do. Eg. WINED3D_NO_FIXED_FUNCTION in case of d3d10, or something like WINED3D_STATIC_VB_DECLARATION for ddraw. This would essentially replace the dxVersion field in IWineD3DImpl.