diff options
Diffstat (limited to 'src/mesa/drivers/dri/i965/brw_wm.c')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_wm.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_wm.c b/src/mesa/drivers/dri/i965/brw_wm.c index 81a61c9..1943d08 100644 --- a/src/mesa/drivers/dri/i965/brw_wm.c +++ b/src/mesa/drivers/dri/i965/brw_wm.c @@ -35,6 +35,7 @@ #include "program/prog_parameter.h" #include "program/program.h" #include "intel_mipmap_tree.h" +#include "intel_image.h" #include "brw_nir.h" #include "brw_program.h" @@ -207,6 +208,16 @@ brw_debug_recompile_sampler_key(struct brw_context *brw, old_key->msaa_16, key->msaa_16); + found |= key_debug(brw, "y_uv image bound", + old_key->y_uv_image_mask, + key->y_uv_image_mask); + found |= key_debug(brw, "y_u_v image bound", + old_key->y_u_v_image_mask, + key->y_u_v_image_mask); + found |= key_debug(brw, "yx_xuxv image bound", + old_key->yx_xuxv_image_mask, + key->yx_xuxv_image_mask); + for (unsigned int i = 0; i < MAX_SAMPLERS; i++) { found |= key_debug(brw, "textureGather workarounds", old_key->gen6_gather_wa[i], key->gen6_gather_wa[i]); @@ -371,6 +382,23 @@ brw_populate_sampler_prog_key_data(struct gl_context *ctx, key->msaa_16 |= 1 << s; } } + + if (t->Target == GL_TEXTURE_EXTERNAL_OES && intel_tex->planar_format) { + switch (intel_tex->planar_format->components) { + case __DRI_IMAGE_COMPONENTS_Y_UV: + key->y_uv_image_mask |= 1 << s; + break; + case __DRI_IMAGE_COMPONENTS_Y_U_V: + key->y_u_v_image_mask |= 1 << s; + break; + case __DRI_IMAGE_COMPONENTS_Y_XUXV: + key->yx_xuxv_image_mask |= 1 << s; + break; + default: + break; + } + } + } } } |