renderer: emulate clip-disabled screen-space positions

This commit is contained in:
nmzik
2026-09-01 21:09:05 +04:00
parent 0c8d7a1e49
commit 0c4dfd565e
8 changed files with 131 additions and 8 deletions
+13
View File
@@ -25,6 +25,7 @@
#include <algorithm>
#include <atomic>
#include <bit>
#include <cstdio>
#include <filesystem>
#include <fmt/format.h>
@@ -897,6 +898,18 @@ void BuildStageStaticKey(const ShaderVertexInputInfo& info, std::vector<uint32_t
key.push_back(info.resources_num);
key.push_back(info.scratch_size_dwords);
key.push_back(info.pa_cl_vs_out_cntl);
key.push_back(static_cast<uint32_t>(info.clip_space.enabled));
if (info.clip_space.enabled) {
for (const float value: info.clip_space.scale) {
key.push_back(std::bit_cast<uint32_t>(value));
}
for (const float value: info.clip_space.offset) {
key.push_back(std::bit_cast<uint32_t>(value));
}
for (const float value: info.clip_space.half_extent) {
key.push_back(std::bit_cast<uint32_t>(value));
}
}
for (int i = 0; i < info.resources_num; i++) {
const auto& resource = info.resources[i];