Module: Mesa
Branch: master
Commit: 8c52ece581e705e2779a0bcb2083e0a15f1fcc21
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=8c52ece581e705e2779a0bcb2083e0a15f1fcc21

Author: Dave Airlie <[email protected]>
Date:   Wed Nov 15 10:04:11 2017 +1000

r600: enable ARB_shader_image_load_store, ARB_shader_image_size

This also enables GL4.2 for gpus with hw fp64 (cayman, cypress)

Tested-By: Gert Wollny <[email protected]>
Signed-off-by: Dave Airlie <[email protected]>

---

 src/gallium/drivers/r600/r600_pipe.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/src/gallium/drivers/r600/r600_pipe.c 
b/src/gallium/drivers/r600/r600_pipe.c
index 96017dc047..a232ee46a8 100644
--- a/src/gallium/drivers/r600/r600_pipe.c
+++ b/src/gallium/drivers/r600/r600_pipe.c
@@ -332,7 +332,7 @@ static int r600_get_param(struct pipe_screen* pscreen, enum 
pipe_cap param)
 
        case PIPE_CAP_GLSL_FEATURE_LEVEL:
                if (family >= CHIP_CEDAR)
-                  return 410;
+                  return 420;
                /* pre-evergreen geom shaders need newer kernel */
                if (rscreen->b.info.drm_minor >= 37)
                   return 330;
@@ -362,6 +362,9 @@ static int r600_get_param(struct pipe_screen* pscreen, enum 
pipe_cap param)
        case PIPE_CAP_BUFFER_SAMPLER_VIEW_RGBA_ONLY:
                return family >= CHIP_CEDAR ? 0 : 1;
 
+       case PIPE_CAP_MAX_COMBINED_SHADER_OUTPUT_RESOURCES:
+               return 8;
+
        /* Unsupported features. */
        case PIPE_CAP_TGSI_FS_COORD_ORIGIN_LOWER_LEFT:
        case PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_INTEGER:
@@ -409,7 +412,6 @@ static int r600_get_param(struct pipe_screen* pscreen, enum 
pipe_cap param)
        case PIPE_CAP_LOAD_CONSTBUF:
        case PIPE_CAP_TGSI_ANY_REG_AS_ADDRESS:
        case PIPE_CAP_TILE_RASTER_ORDER:
-       case PIPE_CAP_MAX_COMBINED_SHADER_OUTPUT_RESOURCES:
        case PIPE_CAP_SIGNED_VERTEX_BUFFER_OFFSET:
                return 0;
 
@@ -607,10 +609,14 @@ static int r600_get_shader_param(struct pipe_screen* 
pscreen,
        case PIPE_SHADER_CAP_TGSI_DFRACEXP_DLDEXP_SUPPORTED:
        case PIPE_SHADER_CAP_TGSI_LDEXP_SUPPORTED:
        case PIPE_SHADER_CAP_MAX_SHADER_BUFFERS:
-       case PIPE_SHADER_CAP_MAX_SHADER_IMAGES:
        case PIPE_SHADER_CAP_LOWER_IF_THRESHOLD:
        case PIPE_SHADER_CAP_TGSI_SKIP_MERGE_REGISTERS:
                return 0;
+       case PIPE_SHADER_CAP_MAX_SHADER_IMAGES:
+               if (rscreen->b.family >= CHIP_CEDAR &&
+                   (shader == PIPE_SHADER_FRAGMENT))
+                   return 8;
+               return 0;
        case PIPE_SHADER_CAP_MAX_HW_ATOMIC_COUNTERS:
                if (rscreen->b.family >= CHIP_CEDAR && rscreen->has_atomics)
                        return 8;

_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to