Browse Source

[TEST] Loggins for depth floats vs missing/ unsupported DepthBiasControl

vk-experiments5
CamilleLaVey 1 month ago
parent
commit
9b760e7c99
  1. 14
      src/video_core/renderer_vulkan/vk_rasterizer.cpp

14
src/video_core/renderer_vulkan/vk_rasterizer.cpp

@ -1255,6 +1255,20 @@ void RasterizerVulkan::UpdateDepthBias(Tegra::Engines::Maxwell3D::Regs& regs) {
}
}
const bool is_float_depth =
regs.zeta.format == Tegra::DepthFormat::Z32_FLOAT ||
regs.zeta.format == Tegra::DepthFormat::Z32_FLOAT_X24S8_UINT ||
regs.zeta.format == Tegra::DepthFormat::Z32_FLOAT_X16V8X8_UINT ||
regs.zeta.format == Tegra::DepthFormat::Z32_FLOAT_X16V8S8_UINT;
if (is_float_depth && units != 0.0f && !device.IsExtDepthBiasControlSupported()) {
static bool logged_float_bias_warning = false;
if (!logged_float_bias_warning) {
logged_float_bias_warning = true;
LOG_WARNING(Render_Vulkan,
"Depth bias on a float depth target without VK_EXT_depth_bias_control");
}
}
scheduler.Record([constant = units, clamp = regs.depth_bias_clamp,
factor = regs.slope_scale_depth_bias, this](vk::CommandBuffer cmdbuf) {
if (device.IsExtDepthBiasControlSupported()) {

Loading…
Cancel
Save