CamilleLaVey
1 month ago
committed by
Caio Oliveira
No known key found for this signature in database
GPG Key ID: AAAE6C7FD4186B0C
3 changed files with
4 additions and
4 deletions
-
src/video_core/renderer_vulkan/vk_pipeline_cache.cpp
-
src/video_core/renderer_vulkan/vk_query_cache.cpp
-
src/video_core/renderer_vulkan/vk_rasterizer.cpp
|
|
|
@ -175,7 +175,7 @@ Shader::RuntimeInfo MakeRuntimeInfo(std::span<const Shader::IR::Program> program |
|
|
|
info.xfb_varyings = varyings; |
|
|
|
info.xfb_count = count; |
|
|
|
} else { |
|
|
|
LOG_WARN(Render_Vulkan, "XFB requested in pipeline key but device lacks VK_EXT_transform_feedback; ignoring XFB decorations"); |
|
|
|
LOG_WARNING(Render_Vulkan, "XFB requested in pipeline key but device lacks VK_EXT_transform_feedback; ignoring XFB decorations"); |
|
|
|
} |
|
|
|
} |
|
|
|
info.convert_depth_mode = gl_ndc; |
|
|
|
|
|
|
|
@ -923,7 +923,7 @@ private: |
|
|
|
} |
|
|
|
const size_t stream = tf.controls[i].stream; |
|
|
|
if (stream >= last_queries_stride.size()) { |
|
|
|
LOG_WARN(Render_Vulkan, "TransformFeedback stream {} out of range", stream); |
|
|
|
LOG_WARNING(Render_Vulkan, "TransformFeedback stream {} out of range", stream); |
|
|
|
continue; |
|
|
|
} |
|
|
|
last_queries_stride[stream] = tf.controls[i].stride; |
|
|
|
@ -1129,7 +1129,7 @@ public: |
|
|
|
// Protect against stride == 0 (avoid divide-by-zero). Use fallback stride=1 and warn.
|
|
|
|
u64 safe_stride = query->stride == 0 ? 1 : query->stride; |
|
|
|
if (query->stride == 0) { |
|
|
|
LOG_WARN(Render_Vulkan, "TransformFeedback query has stride 0; using 1 to avoid div-by-zero (addr=0x{:x})", query->dependant_address); |
|
|
|
LOG_WARNING(Render_Vulkan, "TransformFeedback query has stride 0; using 1 to avoid div-by-zero (addr=0x{:x})", query->dependant_address); |
|
|
|
} |
|
|
|
if (query->dependant_manage) { |
|
|
|
auto* dependant_query = tfb_streamer.GetQuery(query->dependant_index); |
|
|
|
|
|
|
|
@ -1069,7 +1069,7 @@ void RasterizerVulkan::HandleTransformFeedback() { |
|
|
|
// If the guest enabled transform feedback, warn once that the device lacks support.
|
|
|
|
if (regs.transform_feedback_enabled != 0) { |
|
|
|
std::call_once(warn_unsupported, [&] { |
|
|
|
LOG_WARN(Render_Vulkan, "Transform feedback requested by guest but VK_EXT_transform_feedback is unavailable; queries disabled"); |
|
|
|
LOG_WARNING(Render_Vulkan, "Transform feedback requested by guest but VK_EXT_transform_feedback is unavailable; queries disabled"); |
|
|
|
}); |
|
|
|
} else { |
|
|
|
std::call_once(warn_unsupported, [&] { |
|
|
|
|