mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-04 15:40:11 +01:00
nvk: Support transform feedback geometry streams
We just need to set the correct limits and features. The meaningful change here is the selected stream for rasterization which is configured through the graphics pipeline. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
This commit is contained in:
parent
bdd4a65718
commit
2b3730d271
3 changed files with 5 additions and 4 deletions
|
|
@ -42,7 +42,7 @@ emit_pipeline_rs_state(struct nv_push *p,
|
|||
.geometry_guardband_z = GEOMETRY_GUARDBAND_Z_SAME_AS_XY_GUARDBAND,
|
||||
});
|
||||
|
||||
assert(rs->rasterization_stream == 0);
|
||||
P_IMMD(p, NV9097, SET_RASTER_INPUT, rs->rasterization_stream);
|
||||
|
||||
assert(rs->line.mode == VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -230,7 +230,7 @@ nvk_GetPhysicalDeviceProperties2(VkPhysicalDevice physicalDevice,
|
|||
}
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT: {
|
||||
VkPhysicalDeviceTransformFeedbackPropertiesEXT *p = (void *)ext;
|
||||
p->maxTransformFeedbackStreams = 0;
|
||||
p->maxTransformFeedbackStreams = 4;
|
||||
p->maxTransformFeedbackBuffers = 4;
|
||||
p->maxTransformFeedbackBufferSize = UINT32_MAX;
|
||||
p->maxTransformFeedbackStreamDataSize = 2048;
|
||||
|
|
@ -238,7 +238,7 @@ nvk_GetPhysicalDeviceProperties2(VkPhysicalDevice physicalDevice,
|
|||
p->maxTransformFeedbackBufferDataStride = 2048;
|
||||
p->transformFeedbackQueries = false;
|
||||
p->transformFeedbackStreamsLinesTriangles = false;
|
||||
p->transformFeedbackRasterizationStreamSelect = false;
|
||||
p->transformFeedbackRasterizationStreamSelect = true;
|
||||
p->transformFeedbackDraw = true;
|
||||
break;
|
||||
}
|
||||
|
|
@ -483,7 +483,7 @@ nvk_get_device_features(const struct nv_device_info *dev,
|
|||
|
||||
/* VK_EXT_transform_feedback */
|
||||
.transformFeedback = dev->cls_eng3d >= TURING_A,
|
||||
.geometryStreams = false,
|
||||
.geometryStreams = dev->cls_eng3d >= TURING_A,
|
||||
|
||||
/* VK_EXT_vertex_attribute_divisor */
|
||||
.vertexAttributeInstanceRateDivisor = true,
|
||||
|
|
|
|||
|
|
@ -69,6 +69,7 @@ nvk_physical_device_spirv_options(const struct nvk_physical_device *pdevice,
|
|||
.image_write_without_format = true,
|
||||
.physical_storage_buffer_address = true,
|
||||
.transform_feedback = true,
|
||||
.geometry_streams = true,
|
||||
},
|
||||
.ssbo_addr_format = nvk_buffer_addr_format(rs->storage_buffers),
|
||||
.phys_ssbo_addr_format = nir_address_format_64bit_global,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue