On 09/10/2015 09:15 PM, Ilia Mirkin wrote:
This is enabled for all drivers that support MS textures. The image
component of the ext is a no-op since there is no image support in
gallium (yet).

Signed-off-by: Ilia Mirkin <imir...@alum.mit.edu>
---
  src/mesa/state_tracker/st_extensions.c     | 1 +
  src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 6 +++++-
  2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/mesa/state_tracker/st_extensions.c 
b/src/mesa/state_tracker/st_extensions.c
index 884761c..d554e4d 100644
--- a/src/mesa/state_tracker/st_extensions.c
+++ b/src/mesa/state_tracker/st_extensions.c
@@ -449,6 +449,7 @@ void st_init_extensions(struct pipe_screen *screen,
        { o(ARB_point_sprite),                 PIPE_CAP_POINT_SPRITE            
         },
        { o(ARB_seamless_cube_map),            PIPE_CAP_SEAMLESS_CUBE_MAP       
         },
        { o(ARB_shader_stencil_export),        PIPE_CAP_SHADER_STENCIL_EXPORT   
         },
+      { o(ARB_shader_texture_image_samples), PIPE_CAP_TEXTURE_MULTISAMPLE      
        },
        { o(ARB_shader_texture_lod),           PIPE_CAP_SM3                     
         },
        { o(ARB_shadow),                       PIPE_CAP_TEXTURE_SHADOW_MAP      
         },
        { o(ARB_texture_buffer_object),        PIPE_CAP_TEXTURE_BUFFER_OBJECTS  
         },
diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp 
b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
index 625c4e9..c3a8c11 100644
--- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
+++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
@@ -3229,7 +3229,8 @@ glsl_to_tgsi_visitor::visit(ir_texture *ir)
        opcode = TGSI_OPCODE_LODQ;
        break;
     case ir_texture_samples:
-      unreachable("unexpected texture op");
+      opcode = TGSI_OPCODE_TXQS;
+      break;
     }

     if (ir->projector) {
@@ -3339,6 +3340,8 @@ glsl_to_tgsi_visitor::visit(ir_texture *ir)
           emit_asm(ir, TGSI_OPCODE_MOV, result_dst, levels_src);
        } else
           inst = emit_asm(ir, opcode, result_dst, lod_info);
+   } else if (opcode == TGSI_OPCODE_TXQS) {
+      inst = emit_asm(ir, opcode, result_dst);
     } else if (opcode == TGSI_OPCODE_TXF) {
        inst = emit_asm(ir, opcode, result_dst, coord);
     } else if (opcode == TGSI_OPCODE_TXL2 || opcode == TGSI_OPCODE_TXB2) {
@@ -5030,6 +5033,7 @@ compile_tgsi_instruction(struct st_translate *t,
     case TGSI_OPCODE_TXL:
     case TGSI_OPCODE_TXP:
     case TGSI_OPCODE_TXQ:
+   case TGSI_OPCODE_TXQS:
     case TGSI_OPCODE_TXF:
     case TGSI_OPCODE_TEX2:
     case TGSI_OPCODE_TXB2:


Reviewed-by: Brian Paul <bri...@vmware.com>

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to