Kaynağa Gözat

vk/pipeline: Fix crash when the pipeline has no attributes

If there are no attributes, don't emit 3DSTATE_VERTEX_ELEMENTS.
That packet does not allow 0 attributes.
tags/12.0-branchpoint
Chad Versace 10 yıl önce
ebeveyn
işleme
84cfc08c10
2 değiştirilmiş dosya ile 8 ekleme ve 4 silme
  1. 4
    2
      src/vulkan/gen7_pipeline.c
  2. 4
    2
      src/vulkan/gen8_pipeline.c

+ 4
- 2
src/vulkan/gen7_pipeline.c Dosyayı Görüntüle

@@ -39,8 +39,10 @@ gen7_emit_vertex_input(struct anv_pipeline *pipeline,
const uint32_t num_dwords = 1 + element_count * 2;
uint32_t *p;

p = anv_batch_emitn(&pipeline->batch, num_dwords,
GEN7_3DSTATE_VERTEX_ELEMENTS);
if (info->attributeCount > 0) {
p = anv_batch_emitn(&pipeline->batch, num_dwords,
GEN7_3DSTATE_VERTEX_ELEMENTS);
}

for (uint32_t i = 0; i < info->attributeCount; i++) {
const VkVertexInputAttributeDescription *desc =

+ 4
- 2
src/vulkan/gen8_pipeline.c Dosyayı Görüntüle

@@ -36,8 +36,10 @@ emit_vertex_input(struct anv_pipeline *pipeline,
const uint32_t num_dwords = 1 + info->attributeCount * 2;
uint32_t *p;

p = anv_batch_emitn(&pipeline->batch, num_dwords,
GEN8_3DSTATE_VERTEX_ELEMENTS);
if (info->attributeCount > 0) {
p = anv_batch_emitn(&pipeline->batch, num_dwords,
GEN8_3DSTATE_VERTEX_ELEMENTS);
}

for (uint32_t i = 0; i < info->attributeCount; i++) {
const VkVertexInputAttributeDescription *desc =

Loading…
İptal
Kaydet