From d02829c94e3ea663189456d3ac6046e3d00b9c03 Mon Sep 17 00:00:00 2001 From: Boyan Ding Date: Mon, 10 Apr 2017 22:56:05 +0800 Subject: [PATCH] nvc0: Enable ARB_shader_ballot on Kepler+ readInvocationARB() and readFirstInvocationARB() need SHFL.IDX instruction which is introduced in Kepler. Signed-off-by: Boyan Ding Reviewed-by: Ilia Mirkin --- docs/features.txt | 2 +- docs/relnotes/17.1.0.html | 2 +- src/gallium/drivers/nouveau/nvc0/nvc0_screen.c | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/features.txt b/docs/features.txt index edc56842b96..a2d77858278 100644 --- a/docs/features.txt +++ b/docs/features.txt @@ -292,7 +292,7 @@ Khronos, ARB, and OES extensions that are not part of any OpenGL or OpenGL ES ve GL_ARB_sample_locations not started GL_ARB_seamless_cubemap_per_texture DONE (i965, nvc0, radeonsi, r600, softpipe, swr) GL_ARB_shader_atomic_counter_ops DONE (i965/gen7+, nvc0, radeonsi, softpipe) - GL_ARB_shader_ballot DONE (radeonsi) + GL_ARB_shader_ballot DONE (nvc0, radeonsi) GL_ARB_shader_clock DONE (i965/gen7+, nv50, nvc0, radeonsi) GL_ARB_shader_draw_parameters DONE (i965, nvc0, radeonsi) GL_ARB_shader_group_vote DONE (nvc0, radeonsi) diff --git a/docs/relnotes/17.1.0.html b/docs/relnotes/17.1.0.html index 0a5cabe4f1b..8f237ed5270 100644 --- a/docs/relnotes/17.1.0.html +++ b/docs/relnotes/17.1.0.html @@ -45,7 +45,7 @@ Note: some of the new features are only available with certain drivers.
  • GL_ARB_gpu_shader_int64 on i965/gen8+, nvc0, radeonsi, softpipe, llvmpipe
  • -
  • GL_ARB_shader_ballot on radeonsi
  • +
  • GL_ARB_shader_ballot on nvc0, radeonsi
  • GL_ARB_shader_clock on nv50, nvc0, radeonsi
  • GL_ARB_shader_group_vote on radeonsi
  • GL_ARB_sparse_buffer on radeonsi/CIK+
  • diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c b/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c index da5561f53a5..0a9ab292a30 100644 --- a/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c +++ b/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c @@ -259,6 +259,8 @@ nvc0_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param) return class_3d >= NVE4_3D_CLASS; /* needs testing on fermi */ case PIPE_CAP_POLYGON_MODE_FILL_RECTANGLE: return class_3d >= GM200_3D_CLASS; + case PIPE_CAP_TGSI_BALLOT: + return class_3d >= NVE4_3D_CLASS; /* unsupported caps */ case PIPE_CAP_TGSI_FS_COORD_ORIGIN_LOWER_LEFT: @@ -289,7 +291,6 @@ nvc0_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param) case PIPE_CAP_GLSL_OPTIMIZE_CONSERVATIVELY: case PIPE_CAP_INT64_DIVMOD: case PIPE_CAP_SPARSE_BUFFER_PAGE_SIZE: - case PIPE_CAP_TGSI_BALLOT: return 0; case PIPE_CAP_VENDOR_ID: -- 2.30.2