[Mesa-dev] [PATCH v3 00/12] nvc0: ARB_compute_shader for Kepler/Maxwell
Samuel Pitoiset
samuel.pitoiset at gmail.com
Fri Apr 1 16:55:56 UTC 2016
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 (12):
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: 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 | 178 +++++++++++++-
.../nouveau/codegen/nv50_ir_lowering_nvc0.h | 4 +
src/gallium/drivers/nouveau/nvc0/nvc0_context.h | 9 +
src/gallium/drivers/nouveau/nvc0/nvc0_program.c | 16 +-
src/gallium/drivers/nouveau/nvc0/nvc0_screen.c | 4 +-
src/gallium/drivers/nouveau/nvc0/nvc0_screen.h | 1 -
src/gallium/drivers/nouveau/nvc0/nve4_compute.c | 261 ++++++++++++++++-----
src/gallium/drivers/nouveau/nvc0/nve4_compute.h | 44 +---
10 files changed, 408 insertions(+), 115 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
More information about the mesa-dev
mailing list