radv: Enable descriptorBufferCaptureReplay.

The descriptors should be deterministic as long as the memory address it's
assigned to is equal. Enable it by just advertising the feature and putting
a dummy capture replay data requirement of 1 (0 is not permitted).

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19952>
This commit is contained in:
Tatsuyuki Ishi 2022-11-23 21:15:36 +09:00 committed by Marge Bot
parent fe6e96d685
commit 3b57a35ece

View file

@ -1171,7 +1171,7 @@ radv_physical_device_get_features(const struct radv_physical_device *pdev, struc
/* VK_EXT_descriptor_buffer */
.descriptorBuffer = true,
.descriptorBufferCaptureReplay = false,
.descriptorBufferCaptureReplay = true,
.descriptorBufferImageLayoutIgnored = true,
.descriptorBufferPushDescriptors = true,
@ -1899,11 +1899,12 @@ radv_get_physical_device_properties(struct radv_physical_device *pdev)
p->maxSamplerDescriptorBufferBindings = MAX_SETS;
p->maxEmbeddedImmutableSamplerBindings = MAX_SETS;
p->maxEmbeddedImmutableSamplers = radv_max_descriptor_set_size();
p->bufferCaptureReplayDescriptorDataSize = 0;
p->imageCaptureReplayDescriptorDataSize = 0;
p->imageViewCaptureReplayDescriptorDataSize = 0;
p->samplerCaptureReplayDescriptorDataSize = 0;
p->accelerationStructureCaptureReplayDescriptorDataSize = 0;
/* No data required for capture/replay but these values need to be non-zero. */
p->bufferCaptureReplayDescriptorDataSize = 1;
p->imageCaptureReplayDescriptorDataSize = 1;
p->imageViewCaptureReplayDescriptorDataSize = 1;
p->samplerCaptureReplayDescriptorDataSize = 1;
p->accelerationStructureCaptureReplayDescriptorDataSize = 1;
p->samplerDescriptorSize = 16;
p->combinedImageSamplerDescriptorSize = 96;
p->sampledImageDescriptorSize = 64;