Hi, This is another attempt at fixing the border colors on Haswell. Patch 1 is probably a genuine fix, the rest implements a workaround for the integer formats.
The idea is the following, store the border colors and wrapping information for all the samplers as well as some additional information about the texture format last bound to a sampler into a UBO. When a shader tries to access a sampler with integer format, do some bounds checking and load the border color from the UBO if needed. Thanks, Lionel Landwerlin (7): anv: Fix border colors with normalized formats on gen7/gen75 anv: sampler: store border color & wrapping modes on Gen7.5 anv: descriptorSetLayout: allocate additional space for a hidden ubo anv: descriptorPool: allocate additional space for a hidden ubo anv: descriptorSet: allocate hidden ubo for border colors anv: descriptorSet: write sampler border colors on update anv: add nir pass to insert border color workaround src/intel/vulkan/Makefile.sources | 1 + src/intel/vulkan/anv_descriptor_set.c | 136 +++++++++++++++- src/intel/vulkan/anv_nir.h | 3 + src/intel/vulkan/anv_nir_gen7_border_color_wa.c | 208 ++++++++++++++++++++++++ src/intel/vulkan/anv_pipeline.c | 3 + src/intel/vulkan/anv_private.h | 26 ++- src/intel/vulkan/genX_cmd_buffer.c | 9 + src/intel/vulkan/genX_state.c | 21 +++ 8 files changed, 405 insertions(+), 2 deletions(-) create mode 100644 src/intel/vulkan/anv_nir_gen7_border_color_wa.c -- 2.10.2 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev