On 25 November 2016 at 12:17, Józef Kucia jkucia@codeweavers.com wrote:
Signed-off-by: Józef Kucia jkucia@codeweavers.com
The "ps_many_resources_code" shader bytecode is very big because texture resources cannot be indexed and the loop is unrolled.
dlls/d3d11/tests/d3d11.c | 221 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 221 insertions(+)
This doesn't work here. In particular:
fixme:d3d_shader:print_glsl_info_log Info log received from GLSL shader #5: fixme:d3d_shader:print_glsl_info_log error: Too many fragment shader texture samplers ... fixme:d3d:context_bind_shader_resources Shader 0x18bb10 needs 21 samplers, but only 16 are supported.
On Fri, Nov 25, 2016 at 4:05 PM, Henri Verbeet hverbeet@gmail.com wrote:
On 25 November 2016 at 12:17, Józef Kucia jkucia@codeweavers.com wrote:
Signed-off-by: Józef Kucia jkucia@codeweavers.com
The "ps_many_resources_code" shader bytecode is very big because texture resources cannot be indexed and the loop is unrolled.
dlls/d3d11/tests/d3d11.c | 221 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 221 insertions(+)
This doesn't work here. In particular:
fixme:d3d_shader:print_glsl_info_log Info log received from GLSL shader #5: fixme:d3d_shader:print_glsl_info_log error: Too many fragment
shader texture samplers
That's bad. Generally, SM4 hardware is expected to support 32 samplers. In order to prevent this OpenGL error, the number of samplers used in generated GLSL code could be limited to the number of samplers supported by OpenGL implementation. However, the test will fail when wined3d starts to correctly handle more than 16 samplers in pixel shaders.
... fixme:d3d:context_bind_shader_resources Shader 0x18bb10 needs 21
samplers, but only 16 are supported.
This one is expected. The two instances of "todo_wine" in the test are related to this issue.
On 28 November 2016 at 23:19, Józef Kucia joseph.kucia@gmail.com wrote:
That's bad. Generally, SM4 hardware is expected to support 32 samplers.
Are you sure about that? The actual hardware limit seems to be 18, and D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT is 16 as well.
The hardware texture resource limit is much higher at 176, but that doesn't help much in OpenGL unless you use something like ARB_bindless_texture.
On Tue, Nov 29, 2016 at 3:26 PM, Henri Verbeet hverbeet@gmail.com wrote:
On 28 November 2016 at 23:19, Józef Kucia joseph.kucia@gmail.com wrote:
That's bad. Generally, SM4 hardware is expected to support 32 samplers.
Are you sure about that? The actual hardware limit seems to be 18, and D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT is 16 as well.
The sampler register limit even for SM5 is 16, obviously. My memory doesn't suit me well ;-)
The hardware texture resource limit is much higher at 176, but that doesn't help much in OpenGL unless you use something like ARB_bindless_texture.
Yeah, I was thinking that this issue starts after 32nd GL sampler.