nvk: Implement descriptorBufferPushDescriptors
The only thing we really need to do here is to make sure we don't try to use the EDB path for push descriptors since those aren't really descriptor buffers. Backport-to: 25.0 Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33589>
This commit is contained in:
committed by
Marge Bot
parent
7d4c91efef
commit
86e217e7df
@@ -964,8 +964,10 @@ is_edb_buffer_view(nir_deref_instr *deref,
|
||||
nir_variable *var = nir_deref_instr_get_variable(deref);
|
||||
uint8_t set = var->data.descriptor_set;
|
||||
|
||||
return ctx->set_layouts[set]->flags &
|
||||
VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT;
|
||||
return (ctx->set_layouts[set]->flags &
|
||||
VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT) &&
|
||||
!(ctx->set_layouts[set]->flags &
|
||||
VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT);
|
||||
}
|
||||
|
||||
static nir_def *
|
||||
|
||||
@@ -552,7 +552,7 @@ nvk_get_device_features(const struct nv_device_info *info,
|
||||
.descriptorBuffer = true,
|
||||
.descriptorBufferCaptureReplay = true,
|
||||
.descriptorBufferImageLayoutIgnored = true,
|
||||
.descriptorBufferPushDescriptors = false,
|
||||
.descriptorBufferPushDescriptors = true,
|
||||
|
||||
/* VK_EXT_device_generated_commands */
|
||||
.deviceGeneratedCommands = true,
|
||||
@@ -984,7 +984,7 @@ nvk_get_device_properties(const struct nvk_instance *instance,
|
||||
|
||||
/* VK_EXT_descriptor_buffer */
|
||||
.combinedImageSamplerDescriptorSingleArray = true,
|
||||
.bufferlessPushDescriptors = false,
|
||||
.bufferlessPushDescriptors = true,
|
||||
.allowSamplerImageViewPostSubmitCreation = false,
|
||||
.descriptorBufferOffsetAlignment = nvk_min_cbuf_alignment(info),
|
||||
.maxDescriptorBufferBindings = 32,
|
||||
|
||||
Reference in New Issue
Block a user