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:
committed by
Marge Bot
parent
bdd4a65718
commit
2b3730d271
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user