nvc0: enable bindless on kepler
authorIlia Mirkin <imirkin@alum.mit.edu>
Sat, 24 Jun 2017 04:51:13 +0000 (00:51 -0400)
committerIlia Mirkin <imirkin@alum.mit.edu>
Sun, 7 Jan 2018 16:40:35 +0000 (11:40 -0500)
All the functionality is in. Maxwell will take a little bit more
enablement work.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
docs/features.txt
docs/relnotes/17.4.0.html
src/gallium/drivers/nouveau/nvc0/nvc0_screen.c

index eed307637265c42389b5b7098fa476aa279bbd47..a5f34edd4196ac3dd3ade93ae933af34d298e353 100644 (file)
@@ -293,7 +293,7 @@ GLES3.2, GLSL ES 3.2 -- all DONE: i965/gen9+
 
 Khronos, ARB, and OES extensions that are not part of any OpenGL or OpenGL ES version:
 
-  GL_ARB_bindless_texture                               DONE (radeonsi)
+  GL_ARB_bindless_texture                               DONE (nvc0, radeonsi)
   GL_ARB_cl_event                                       not started
   GL_ARB_compute_variable_group_size                    DONE (nvc0, radeonsi)
   GL_ARB_ES3_2_compatibility                            DONE (i965/gen8+)
index b477c274fe1be5cfd7ae60de6f101f6c85e68ce3..1adbb3e1cfef4d80485b130ff6be561f2791fa1d 100644 (file)
@@ -50,6 +50,7 @@ Note: some of the new features are only available with certain drivers.
 <li>GL_ARB_shader_storage_buffer_object on r600/evergreen+<li>
 <li>GL_ARB_compute_shader on r600/evergreen+<li>
 <li>GL_ARB_cull_distance on r600/evergreen+</li>
+<li>GL_ARB_bindless_texture on nvc0/kepler</li>
 <li>OpenGL 4.3 on r600/evergreen with hw fp64 support</li>
 <li>Support 1 binary format for GL_ARB_get_program_binary on i965</li>
 </ul>
index e51d5163539e17e394851fcdf37dec6b1d433052..d911884f78e2bedf8d512dcc87526500d9260e0a 100644 (file)
@@ -258,8 +258,6 @@ nvc0_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
    case PIPE_CAP_CAN_BIND_CONST_BUFFER_AS_VERTEX:
    case PIPE_CAP_ALLOW_MAPPED_BUFFERS_DURING_EXECUTION:
       return 1;
-   case PIPE_CAP_SEAMLESS_CUBE_MAP_PER_TEXTURE:
-      return (class_3d >= NVE4_3D_CLASS) ? 1 : 0;
    case PIPE_CAP_PREFER_BLIT_BASED_TEXTURE_TRANSFER:
       return nouveau_screen(pscreen)->vram_domain & NOUVEAU_BO_VRAM ? 1 : 0;
    case PIPE_CAP_TGSI_FS_FBFETCH:
@@ -269,8 +267,11 @@ nvc0_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
    case PIPE_CAP_TGSI_TES_LAYER_VIEWPORT:
    case PIPE_CAP_POST_DEPTH_COVERAGE:
       return class_3d >= GM200_3D_CLASS;
+   case PIPE_CAP_SEAMLESS_CUBE_MAP_PER_TEXTURE:
    case PIPE_CAP_TGSI_BALLOT:
       return class_3d >= NVE4_3D_CLASS;
+   case PIPE_CAP_BINDLESS_TEXTURE:
+      return class_3d >= NVE4_3D_CLASS && class_3d < GM107_3D_CLASS;
 
    /* unsupported caps */
    case PIPE_CAP_TGSI_FS_COORD_ORIGIN_LOWER_LEFT:
@@ -300,7 +301,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_BINDLESS_TEXTURE:
    case PIPE_CAP_NIR_SAMPLERS_AS_DEREF:
    case PIPE_CAP_QUERY_SO_OVERFLOW:
    case PIPE_CAP_MEMOBJ: