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.
This commit is contained in:
@@ -39,8 +39,10 @@ gen7_emit_vertex_input(struct anv_pipeline *pipeline,
|
|||||||
const uint32_t num_dwords = 1 + element_count * 2;
|
const uint32_t num_dwords = 1 + element_count * 2;
|
||||||
uint32_t *p;
|
uint32_t *p;
|
||||||
|
|
||||||
|
if (info->attributeCount > 0) {
|
||||||
p = anv_batch_emitn(&pipeline->batch, num_dwords,
|
p = anv_batch_emitn(&pipeline->batch, num_dwords,
|
||||||
GEN7_3DSTATE_VERTEX_ELEMENTS);
|
GEN7_3DSTATE_VERTEX_ELEMENTS);
|
||||||
|
}
|
||||||
|
|
||||||
for (uint32_t i = 0; i < info->attributeCount; i++) {
|
for (uint32_t i = 0; i < info->attributeCount; i++) {
|
||||||
const VkVertexInputAttributeDescription *desc =
|
const VkVertexInputAttributeDescription *desc =
|
||||||
|
@@ -36,8 +36,10 @@ emit_vertex_input(struct anv_pipeline *pipeline,
|
|||||||
const uint32_t num_dwords = 1 + info->attributeCount * 2;
|
const uint32_t num_dwords = 1 + info->attributeCount * 2;
|
||||||
uint32_t *p;
|
uint32_t *p;
|
||||||
|
|
||||||
|
if (info->attributeCount > 0) {
|
||||||
p = anv_batch_emitn(&pipeline->batch, num_dwords,
|
p = anv_batch_emitn(&pipeline->batch, num_dwords,
|
||||||
GEN8_3DSTATE_VERTEX_ELEMENTS);
|
GEN8_3DSTATE_VERTEX_ELEMENTS);
|
||||||
|
}
|
||||||
|
|
||||||
for (uint32_t i = 0; i < info->attributeCount; i++) {
|
for (uint32_t i = 0; i < info->attributeCount; i++) {
|
||||||
const VkVertexInputAttributeDescription *desc =
|
const VkVertexInputAttributeDescription *desc =
|
||||||
|
Reference in New Issue
Block a user