Hi, This series adds support for ARB_compute_shader on GK104 and GM107+, except on GK110 where one test miserably fail (related to texelFetch) for really weird reasons. Anyway, this is not going to break anything because NVF0_COMPUTE is still required for using compute on GK110. I will have a deeper look at this fail later.
Almost all dEQP compute tests pass with a very good ratio. As usual, the list of fails is described below. About piglit, only two tests fail but this is related to images support. I don't update GL3.txt in this series because compute shaders are not really useful without images support. ARB_shader_image_load_store and ARB_shader_image_size are in work in progress and should be ready in a couple of weeks. Please review, Thanks! Samuel Pitoiset (13): nvc0: bind driver cb for compute on c7[] for Kepler nvc0: bind shader buffers for compute on Kepler nvc0: bind user uniforms for compute on Kepler nvc0: reserve an area for ubos info in the driver constbuf nvc0: store ubo info to the driver constbuf on Kepler nvc0: reduce likelihood of collision for real buffers on Kepler nvc0: add indirect compute support on Kepler nvc0/ir: add support for compute UBOs on Kepler nvc0/ir: fix wrong pred emission for ld lock on GK104 nvc0/ir: add atomics support on shared memory for Kepler nvc0/ir: do not lower shared+atomics on GM107+ nvc0: bump the maximum number of UBOs for compute on Kepler nvc0: enable compute shaders on GK104 and GM107+ .../drivers/nouveau/codegen/nv50_ir_driver.h | 1 + .../drivers/nouveau/codegen/nv50_ir_emit_nvc0.cpp | 5 +- .../nouveau/codegen/nv50_ir_lowering_nvc0.cpp | 181 +++++++++++++- .../nouveau/codegen/nv50_ir_lowering_nvc0.h | 4 + src/gallium/drivers/nouveau/nvc0/nvc0_compute.c | 4 +- src/gallium/drivers/nouveau/nvc0/nvc0_context.h | 15 +- src/gallium/drivers/nouveau/nvc0/nvc0_program.c | 16 +- src/gallium/drivers/nouveau/nvc0/nvc0_screen.c | 6 +- src/gallium/drivers/nouveau/nvc0/nvc0_screen.h | 1 - .../drivers/nouveau/nvc0/nvc0_state_validate.c | 8 +- src/gallium/drivers/nouveau/nvc0/nvc0_tex.c | 2 +- src/gallium/drivers/nouveau/nvc0/nve4_compute.c | 260 ++++++++++++++++----- src/gallium/drivers/nouveau/nvc0/nve4_compute.h | 44 +--- 13 files changed, 421 insertions(+), 126 deletions(-) -- 2.7.4 ** dEQP ** deqp-gles31/functional/shaders/builtin_functions/precision/atan2/highp_compute/scalar: fail deqp-gles31/functional/shaders/builtin_functions/precision/atan2/highp_compute/vec2: fail deqp-gles31/functional/shaders/builtin_functions/precision/atan2/highp_compute/vec3: fail deqp-gles31/functional/shaders/builtin_functions/precision/atan2/highp_compute/vec4: fail deqp-gles31/functional/shaders/builtin_functions/precision/atan2/mediump_compute/vec2: fail deqp-gles31/functional/shaders/builtin_functions/precision/atan2/mediump_compute/vec4: fail deqp-gles31/functional/shaders/builtin_functions/precision/ldexp/highp_compute/scalar: fail deqp-gles31/functional/shaders/builtin_functions/precision/ldexp/highp_compute/vec2: fail deqp-gles31/functional/shaders/builtin_functions/precision/ldexp/highp_compute/vec3: fail deqp-gles31/functional/shaders/builtin_functions/precision/ldexp/highp_compute/vec4: fail deqp-gles31/functional/shaders/builtin_functions/precision/ldexp/mediump_compute/scalar: fail deqp-gles31/functional/shaders/builtin_functions/precision/ldexp/mediump_compute/vec2: fail deqp-gles31/functional/shaders/builtin_functions/precision/ldexp/mediump_compute/vec3: fail deqp-gles31/functional/shaders/builtin_functions/precision/ldexp/mediump_compute/vec4: fail deqp-gles31/functional/shaders/builtin_functions/precision/tanh/highp_compute/scalar: fail deqp-gles31/functional/shaders/builtin_functions/precision/tanh/highp_compute/vec2: fail deqp-gles31/functional/shaders/builtin_functions/precision/tanh/highp_compute/vec3: fail deqp-gles31/functional/shaders/builtin_functions/precision/tanh/highp_compute/vec4: fail deqp-gles31/functional/shaders/opaque_type_indexing/sampler/const_expression/compute/sampler2darrayshadow: fail deqp-gles31/functional/shaders/opaque_type_indexing/sampler/const_expression/compute/sampler2dshadow: fail deqp-gles31/functional/shaders/opaque_type_indexing/sampler/const_expression/compute/samplercubeshadow: fail deqp-gles31/functional/shaders/opaque_type_indexing/sampler/const_literal/compute/sampler2darrayshadow: fail deqp-gles31/functional/shaders/opaque_type_indexing/sampler/const_literal/compute/sampler2dshadow: fail deqp-gles31/functional/shaders/opaque_type_indexing/sampler/const_literal/compute/samplercubeshadow: fail deqp-gles31/functional/shaders/opaque_type_indexing/sampler/dynamically_uniform/compute/sampler2darrayshadow: fail deqp-gles31/functional/shaders/opaque_type_indexing/sampler/dynamically_uniform/compute/sampler2dshadow: fail deqp-gles31/functional/shaders/opaque_type_indexing/sampler/dynamically_uniform/compute/samplercubeshadow: fail deqp-gles31/functional/shaders/opaque_type_indexing/sampler/uniform/compute/sampler2darrayshadow: fail deqp-gles31/functional/shaders/opaque_type_indexing/sampler/uniform/compute/sampler2dshadow: fail deqp-gles31/functional/shaders/opaque_type_indexing/sampler/uniform/compute/samplercubeshadow: fail deqp-gles31/functional/state_query/integer/max_compute_image_uniforms_getboolean: fail deqp-gles31/functional/state_query/integer/max_compute_image_uniforms_getfloat: fail deqp-gles31/functional/state_query/integer/max_compute_image_uniforms_getinteger: fail deqp-gles31/functional/state_query/integer/max_compute_image_uniforms_getinteger64: fail deqp-gles31/functional/compute/basic/copy_image_to_ssbo_large: crash deqp-gles31/functional/compute/basic/copy_image_to_ssbo_small: crash deqp-gles31/functional/compute/basic/copy_ssbo_to_image_large: crash deqp-gles31/functional/compute/basic/copy_ssbo_to_image_small: crash deqp-gles31/functional/compute/basic/image_barrier_multiple: crash deqp-gles31/functional/compute/basic/image_barrier_single: crash ** piglit ** spec/arb_compute_shader/built-in constants/gl_MaxComputeImageUniforms: fail spec/arb_compute_shader/minmax: fail _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev