lvp: avoid reading immutable sampler from desc write info

Lavapipe has switched to layer push descriptor support atop descriptor
updates internally since 12a7fc51c7, so
it must skip retrieving immutable samplers from the write info even if
the update call itself is blessed by the spec to not hit that case.

Fixes: 12a7fc51c7 ("lavapipe: Rework descriptor handling")
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24263>
(cherry picked from commit 8cb7bab341)
This commit is contained in:
Yiwei Zhang 2023-07-20 11:47:52 -07:00 committed by Dylan Baker
parent c0eb1c601e
commit 3b388a6dcb
2 changed files with 7 additions and 6 deletions

View file

@ -14874,7 +14874,7 @@
"description": "lvp: avoid reading immutable sampler from desc write info",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": "12a7fc51c77925a5562fd104a8fbd664a46ffc8b",
"notes": null

View file

@ -449,12 +449,13 @@ VKAPI_ATTR void VKAPI_CALL lvp_UpdateDescriptorSets(
switch (write->descriptorType) {
case VK_DESCRIPTOR_TYPE_SAMPLER:
for (uint32_t j = 0; j < write->descriptorCount; j++) {
LVP_FROM_HANDLE(lvp_sampler, sampler,
write->pImageInfo[j].sampler);
if (!bind_layout->immutable_samplers) {
for (uint32_t j = 0; j < write->descriptorCount; j++) {
LVP_FROM_HANDLE(lvp_sampler, sampler, write->pImageInfo[j].sampler);
desc[j].sampler = sampler->desc.sampler;
desc[j].sampler_index = sampler->desc.sampler_index;
desc[j].sampler = sampler->desc.sampler;
desc[j].sampler_index = sampler->desc.sampler_index;
}
}
break;