mesa/src
Connor Abbott 39c64a4b53 freedreno/a6xx: Fix border color swizzling
From the API's point of view, border color replacement looks like this:

       --------------------
       | API Border Color |
       --------------------
               |
-----------    |    ----------------      ----------
| API fmt |-------->| User Swizzle |----->| Shader |
-----------         ----------------      ----------

From the HW point of view, it looks like this:

                    -------------------
                    | HW Border Color |
                    -------------------
                             |
----------     -----------   |   ---------------      ----------
| HW fmt |-----| HW swap |------>| Tex Swizzle |----->| Shader |
----------     -----------       ---------------      ----------

When the HW fmt + HW swap isn't enough to represent an API format, we
need to prepend our own swizzle to the the user's swizzle, so the tex
swizzle is a "format swizzle" composed with the user swizzle. However,
we don't want this format swizzle to be applied to border colors, so
there's a workaround in freedreno which is meant to undo the format
swizzle so that the HW border color with the format swizzle applied
equals the API border color, and everything is ok. However, on a6xx at
least it was incorrectly undoing the entire tex swizzle. This broke
border color with a user swizzle, because it was now effectively not
getting applied for the border color. It also made it seem like the user
swizzle is required for the workaround, which would have implications
for VK_EXT_border_color_swizzle with turnip, but it's not.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17177>
2022-06-29 03:00:56 +00:00
..
amd radv: Refactor lower_rt_derefs 2022-06-29 00:33:26 +00:00
android_stub
asahi agx: Handle loop { if { loop { .. } } } 2022-06-22 21:23:50 +00:00
broadcom v3dv: Use vk_pipeline_hash_shader_stage() 2022-06-28 09:07:32 +00:00
c11 c11: reinstate the original license and authorship 2022-06-27 11:46:22 +00:00
compiler glsl: merge lower_buffer_access with lower_shared_reference 2022-06-29 02:33:38 +00:00
drm-shim drm-shim: Cleanup on device file close 2022-05-02 19:50:33 +00:00
egl egl/wayland: Don't try to access modifiers u_vector as dynarray 2022-06-23 16:12:15 +00:00
etnaviv ci/bare-metal: Consolidate needs declarations in .baremetal-test-*. 2022-06-22 20:59:54 +00:00
freedreno freedreno/a6xx: Fix border color swizzling 2022-06-29 03:00:56 +00:00
gallium freedreno/a6xx: Fix border color swizzling 2022-06-29 03:00:56 +00:00
gbm gallium: Learn about kopper 2022-04-07 00:17:40 +00:00
getopt
glx glx/dri: Fix DRI drawable release at MakeCurrent time 2022-06-27 20:03:26 +00:00
gtest
hgl
imagination pvr: Rename loop iterator variable. 2022-06-24 09:15:53 +00:00
imgui
intel ci: traces: switch to brotli compressed traces 2022-06-29 00:58:28 +00:00
loader gallium/dri: add missing PIPE_BIND_DRI_PRIME handling 2022-02-08 00:13:07 +00:00
mapi meson: Using get_argument_syntax as the --compiler_id option for gen_vs_module_defs.py 2022-06-16 19:59:58 +00:00
mesa util: add dri config option to disable GL_MAP_UNSYNCHRONIZED_BIT 2022-06-24 00:29:24 +00:00
microsoft ci/dzn: Add pipeline cache tests to the include list 2022-06-28 13:02:23 +00:00
nouveau nouveau/nir: Implement mul_zero_wins behavior for use_legacy_math_rules. 2022-06-10 03:26:33 +00:00
panfrost ci: traces: switch to brotli compressed traces 2022-06-29 00:58:28 +00:00
tool meson/pps: Check if libdrm exists to compile pps 2022-06-22 11:52:36 +03:00
util util/disk_cache: Implement disk_cache_get_function_identifier for Windows 2022-06-27 16:18:32 +00:00
virtio venus: support VK_KHR_copy_commands2 2022-06-24 23:20:05 +00:00
vulkan vulkan_entrypoints_gen: For Windows ARM64EC, prefix symbols with '#' 2022-06-29 01:18:19 +00:00
meson.build meson: Use cc.get_argument_syntax instead cc.get_id when possible. 2022-06-16 19:59:58 +00:00