[vulkan, rasterizer] Filling missing byte count handling when TFB is not available
This commit is contained in:
parent
7b84247964
commit
b4ea751a2c
|
|
@ -354,11 +354,18 @@ void RasterizerVulkan::DrawIndirect() {
|
|||
const auto& buffer = indirect_buffer.first;
|
||||
const auto& offset = indirect_buffer.second;
|
||||
if (params.is_byte_count) {
|
||||
scheduler.Record([buffer_obj = buffer->Handle(), offset,
|
||||
stride = params.stride](vk::CommandBuffer cmdbuf) {
|
||||
cmdbuf.DrawIndirectByteCountEXT(1, 0, buffer_obj, offset, 0,
|
||||
static_cast<u32>(stride));
|
||||
});
|
||||
if (!device.IsExtTransformFeedbackSupported()) {
|
||||
scheduler.Record([buffer_obj = buffer->Handle(), offset,
|
||||
stride = params.stride](vk::CommandBuffer cmdbuf) {
|
||||
cmdbuf.DrawIndirect(buffer_obj, offset, 1, static_cast<u32>(stride));
|
||||
});
|
||||
} else {
|
||||
scheduler.Record([buffer_obj = buffer->Handle(), offset,
|
||||
stride = params.stride](vk::CommandBuffer cmdbuf) {
|
||||
cmdbuf.DrawIndirectByteCountEXT(1, 0, buffer_obj, offset, 0,
|
||||
static_cast<u32>(stride));
|
||||
});
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (params.include_count) {
|
||||
|
|
|
|||
|
|
@ -542,12 +542,10 @@ public:
|
|||
return extensions.transform_feedback;
|
||||
}
|
||||
|
||||
/// Returns true if the device supports VK_EXT_transform_feedback.
|
||||
bool AreTransformFeedbackGeometryStreamsSupported() const {
|
||||
return features.transform_feedback.geometryStreams;
|
||||
}
|
||||
|
||||
/// Returns true if transform feedback preserves provoking vertex.
|
||||
bool IsTransformFeedbackProvokingVertexPreserved() const {
|
||||
return features.provoking_vertex.transformFeedbackPreservesProvokingVertex;
|
||||
}
|
||||
|
|
@ -714,7 +712,7 @@ public:
|
|||
return has_renderdoc || has_nsight_graphics || has_radeon_gpu_profiler;
|
||||
}
|
||||
|
||||
/// @returns True if compute pipelines can cause crashing.
|
||||
/// Returns true if compute pipelines can cause crashing.
|
||||
bool HasBrokenCompute() const {
|
||||
return has_broken_compute;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue