[Mesa-dev] [PATCH v3 00/14] nvc0: add compute shaders on Fermi
Samuel Pitoiset
samuel.pitoiset at gmail.com
Wed Feb 17 21:27:38 UTC 2016
Hi,
This series adds support for ARB_compute_shader only on Fermi. Kepler compute
support is really different and I need to fix a bunch of things to make it work
correctly.
Almost all piglit/dEQP tests pass. The list of fails is available below.
Samuel Pitoiset (14):
nvc0: allocate an area for compute user constbufs
nvc0: bind constant buffers for compute on Fermi
nvc0: add a new validation state for 3D driver constbuf
nvc0: bind driver constbuf for compute on Fermi
nvc0: bind shader buffers for compute on Fermi
nvc0: bind textures/samplers for compute on Fermi
nvc0: add support for indirect compute on Fermi
nvc0: invalidate compute state when switching pipe contexts
nvc0: reduce likelihood of collision for real buffers on Fermi
nv50/ir: use s[] addr space for shared buffers
nv50/ir: add lock/unlock subops for load/store
nv50/ir: make OP_SELP a compare instruction
nv50/ir: add atomics support on shared memory for Fermi
nvc0: enable compute shaders on Fermi
src/gallium/drivers/nouveau/codegen/nv50_ir.h | 2 +
.../drivers/nouveau/codegen/nv50_ir_emit_nvc0.cpp | 29 ++-
.../drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp | 41 ++--
.../drivers/nouveau/codegen/nv50_ir_inlines.h | 4 +-
.../nouveau/codegen/nv50_ir_lowering_nvc0.cpp | 103 +++++++++-
.../nouveau/codegen/nv50_ir_lowering_nvc0.h | 1 +
.../drivers/nouveau/codegen/nv50_ir_print.cpp | 10 +
src/gallium/drivers/nouveau/nvc0/mme/Makefile | 2 +-
src/gallium/drivers/nouveau/nvc0/mme/com90c0.mme | 24 +++
src/gallium/drivers/nouveau/nvc0/mme/com90c0.mme.h | 19 ++
src/gallium/drivers/nouveau/nvc0/nvc0_compute.c | 220 ++++++++++++++++++---
src/gallium/drivers/nouveau/nvc0/nvc0_context.c | 28 ++-
src/gallium/drivers/nouveau/nvc0/nvc0_context.h | 8 +-
src/gallium/drivers/nouveau/nvc0/nvc0_macros.h | 2 +
src/gallium/drivers/nouveau/nvc0/nvc0_program.c | 3 +
src/gallium/drivers/nouveau/nvc0/nvc0_screen.c | 20 +-
src/gallium/drivers/nouveau/nvc0/nvc0_screen.h | 2 +-
src/gallium/drivers/nouveau/nvc0/nvc0_state.c | 17 +-
.../drivers/nouveau/nvc0/nvc0_state_validate.c | 40 +++-
src/gallium/drivers/nouveau/nvc0/nvc0_tex.c | 27 ++-
src/gallium/drivers/nouveau/nvc0/nvc0_vbo.c | 10 +-
21 files changed, 520 insertions(+), 92 deletions(-)
create mode 100644 src/gallium/drivers/nouveau/nvc0/mme/com90c0.mme
create mode 100644 src/gallium/drivers/nouveau/nvc0/mme/com90c0.mme.h
--
2.6.4
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
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
No image support.
deqp-gles31/functional/shaders/builtin_functions/precision/acos/highp_compute/scalar: fail
deqp-gles31/functional/shaders/builtin_functions/precision/acos/highp_compute/vec2: fail
deqp-gles31/functional/shaders/builtin_functions/precision/acos/highp_compute/vec3: fail
deqp-gles31/functional/shaders/builtin_functions/precision/acos/highp_compute/vec4: fail
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/distance/highp_compute/vec2: fail
deqp-gles31/functional/shaders/builtin_functions/precision/distance/highp_compute/vec3: fail
deqp-gles31/functional/shaders/builtin_functions/precision/distance/highp_compute/vec4: fail
deqp-gles31/functional/shaders/builtin_functions/precision/distance/lowp_compute/vec2: fail
deqp-gles31/functional/shaders/builtin_functions/precision/distance/lowp_compute/vec3: fail
deqp-gles31/functional/shaders/builtin_functions/precision/distance/lowp_compute/vec4: fail
deqp-gles31/functional/shaders/builtin_functions/precision/distance/mediump_compute/vec2: fail
deqp-gles31/functional/shaders/builtin_functions/precision/distance/mediump_compute/vec3: fail
deqp-gles31/functional/shaders/builtin_functions/precision/distance/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/length/highp_compute/scalar: fail
deqp-gles31/functional/shaders/builtin_functions/precision/length/highp_compute/vec2: fail
deqp-gles31/functional/shaders/builtin_functions/precision/length/highp_compute/vec3: fail
deqp-gles31/functional/shaders/builtin_functions/precision/length/highp_compute/vec4: fail
deqp-gles31/functional/shaders/builtin_functions/precision/length/lowp_compute/scalar: fail
deqp-gles31/functional/shaders/builtin_functions/precision/length/lowp_compute/vec2: fail
deqp-gles31/functional/shaders/builtin_functions/precision/length/lowp_compute/vec3: fail
deqp-gles31/functional/shaders/builtin_functions/precision/length/lowp_compute/vec4: fail
deqp-gles31/functional/shaders/builtin_functions/precision/length/mediump_compute/scalar: fail
deqp-gles31/functional/shaders/builtin_functions/precision/length/mediump_compute/vec2: fail
deqp-gles31/functional/shaders/builtin_functions/precision/length/mediump_compute/vec3: fail
deqp-gles31/functional/shaders/builtin_functions/precision/length/mediump_compute/vec4: fail
deqp-gles31/functional/shaders/builtin_functions/precision/refract/highp_compute/scalar: fail
deqp-gles31/functional/shaders/builtin_functions/precision/refract/highp_compute/vec2: fail
deqp-gles31/functional/shaders/builtin_functions/precision/refract/highp_compute/vec3: fail
deqp-gles31/functional/shaders/builtin_functions/precision/refract/highp_compute/vec4: fail
deqp-gles31/functional/shaders/builtin_functions/precision/sqrt/highp_compute/scalar: fail
deqp-gles31/functional/shaders/builtin_functions/precision/sqrt/highp_compute/vec2: fail
deqp-gles31/functional/shaders/builtin_functions/precision/sqrt/highp_compute/vec3: fail
deqp-gles31/functional/shaders/builtin_functions/precision/sqrt/highp_compute/vec4: fail
deqp-gles31/functional/shaders/builtin_functions/precision/sqrt/lowp_compute/scalar: fail
deqp-gles31/functional/shaders/builtin_functions/precision/sqrt/lowp_compute/vec2: fail
deqp-gles31/functional/shaders/builtin_functions/precision/sqrt/lowp_compute/vec3: fail
deqp-gles31/functional/shaders/builtin_functions/precision/sqrt/lowp_compute/vec4: fail
deqp-gles31/functional/shaders/builtin_functions/precision/sqrt/mediump_compute/scalar: fail
deqp-gles31/functional/shaders/builtin_functions/precision/sqrt/mediump_compute/vec2: fail
deqp-gles31/functional/shaders/builtin_functions/precision/sqrt/mediump_compute/vec3: fail
deqp-gles31/functional/shaders/builtin_functions/precision/sqrt/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
Probably related to sqrt.
deqp-gles31/functional/draw_indirect/compute_interop/large/drawarrays_combined_grid_500x500_drawcount_2500: crash
deqp-gles31/functional/draw_indirect/compute_interop/large/drawarrays_separate_grid_500x500_drawcount_2500: crash
deqp-gles31/functional/draw_indirect/compute_interop/large/drawelements_combined_grid_1000x1000_drawcount_5000: crash
deqp-gles31/functional/draw_indirect/compute_interop/large/drawelements_combined_grid_500x500_drawcount_2500: crash
deqp-gles31/functional/draw_indirect/compute_interop/large/drawelements_separate_grid_1000x1000_drawcount_5000: crash
deqp-gles31/functional/draw_indirect/compute_interop/large/drawelements_separate_grid_500x500_drawcount_2500: crash
We are submitting too fast. This could be fixed later.
More information about the mesa-dev
mailing list