wined3d: Implement SM4 sample_b instruction.
authorJózef Kucia <jkucia@codeweavers.com>
Wed, 3 Feb 2016 10:49:10 +0000 (11:49 +0100)
committerAlexandre Julliard <julliard@winehq.org>
Wed, 3 Feb 2016 12:57:05 +0000 (21:57 +0900)
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
dlls/wined3d/glsl_shader.c

index 00bd81e711fcd21e72c05c80eec6cbc078a65fa8..e9ec4f11a12f9a304c88b12169facab877df6f92 100644 (file)
@@ -4408,6 +4408,10 @@ static void shader_glsl_sample(const struct wined3d_shader_instruction *ins)
     {
         case WINED3DSIH_SAMPLE:
             break;
+        case WINED3DSIH_SAMPLE_B:
+            shader_glsl_add_src_param(ins, &ins->src[3], WINED3DSP_WRITEMASK_0, &lod_param);
+            lod_param_str = lod_param.param_str;
+            break;
         case WINED3DSIH_SAMPLE_LOD:
             flags |= WINED3D_GLSL_SAMPLE_LOD;
             shader_glsl_add_src_param(ins, &ins->src[3], WINED3DSP_WRITEMASK_0, &lod_param);
@@ -8104,7 +8108,7 @@ static const SHADER_HANDLER shader_glsl_instruction_handler_table[WINED3DSIH_TAB
     /* WINED3DSIH_ROUND_Z                       */ shader_glsl_map2gl,
     /* WINED3DSIH_RSQ                           */ shader_glsl_scalar_op,
     /* WINED3DSIH_SAMPLE                        */ shader_glsl_sample,
-    /* WINED3DSIH_SAMPLE_B                      */ NULL,
+    /* WINED3DSIH_SAMPLE_B                      */ shader_glsl_sample,
     /* WINED3DSIH_SAMPLE_C                      */ NULL,
     /* WINED3DSIH_SAMPLE_C_LZ                   */ NULL,
     /* WINED3DSIH_SAMPLE_GRAD                   */ NULL,