isl: speedup buffer fills by dropping swizzle programming

In vkoverhead ubo/ssbo tests, this is about 15/20% improvement.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40697>
This commit is contained in:
Lionel Landwerlin 2026-03-30 10:05:27 +03:00 committed by Marge Bot
parent c6f24ddcc9
commit fdc1fae740

View file

@ -1175,13 +1175,16 @@ isl_genX(buffer_fill_state_s)(const struct isl_device *dev, void *state,
#endif
#if (GFX_VERx10 >= 75)
struct isl_swizzle swz = isl_get_shader_channel_select(info->format,
info->swizzle);
if (info->format != ISL_FORMAT_RAW) {
struct isl_swizzle swz =
isl_get_shader_channel_select(info->format,
info->swizzle);
s.ShaderChannelSelectRed = (enum GENX(ShaderChannelSelect)) swz.r;
s.ShaderChannelSelectGreen = (enum GENX(ShaderChannelSelect)) swz.g;
s.ShaderChannelSelectBlue = (enum GENX(ShaderChannelSelect)) swz.b;
s.ShaderChannelSelectAlpha = (enum GENX(ShaderChannelSelect)) swz.a;
s.ShaderChannelSelectRed = (enum GENX(ShaderChannelSelect)) swz.r;
s.ShaderChannelSelectGreen = (enum GENX(ShaderChannelSelect)) swz.g;
s.ShaderChannelSelectBlue = (enum GENX(ShaderChannelSelect)) swz.b;
s.ShaderChannelSelectAlpha = (enum GENX(ShaderChannelSelect)) swz.a;
}
#endif
GENX(RENDER_SURFACE_STATE_pack)(NULL, state, &s);