mirror of
https://github.com/KytyPS5/KytyPS5.git
synced 2026-10-20 02:47:02 +02:00
refactor renderer
This commit is contained in:
@@ -12,6 +12,7 @@
|
||||
#include "graphics/guest_gpu/gpu_defs.h"
|
||||
#include "graphics/guest_gpu/graphicsRun.h"
|
||||
#include "graphics/guest_gpu/hardwareContext.h"
|
||||
#include "graphics/host_gpu/renderer/renderContext.h"
|
||||
#include "graphics/shader/recompiler/ShaderDecoder.h"
|
||||
#include "graphics/shader/recompiler/ShaderRecompiler.h"
|
||||
#include "graphics/shader/shaderVertexMetadata.h"
|
||||
@@ -825,6 +826,11 @@ static void ShaderGetStaticInputInfoPS(
|
||||
vs_info.stage.program != nullptr && !vs_info.stage.program->bindings.descriptors.empty()
|
||||
? 1
|
||||
: 0;
|
||||
ps_info.push_constant_offset =
|
||||
vs_info.stage.program != nullptr
|
||||
? vs_info.stage.program->bindings.push_constant_offset +
|
||||
vs_info.stage.program->bindings.push_constant_size
|
||||
: 0;
|
||||
|
||||
for (int i = 0; i < 8; i++) {
|
||||
ps_info.target_output_mode[i] = sh.target_output_mode[i];
|
||||
@@ -991,7 +997,7 @@ static void ShaderAppendNativeSpecialization(std::vector<uint32_t>&
|
||||
ids.push_back(program.bindings.push_constant_size);
|
||||
ids.push_back(static_cast<uint32_t>(program.bindings.user_data_registers.size()));
|
||||
ids.insert(ids.end(), program.bindings.user_data_registers.begin(),
|
||||
program.bindings.user_data_registers.end());
|
||||
program.bindings.user_data_registers.end());
|
||||
ids.push_back(static_cast<uint32_t>(program.bindings.descriptors.size()));
|
||||
for (const auto& binding: program.bindings.descriptors) {
|
||||
ids.push_back(static_cast<uint32_t>(binding.kind));
|
||||
@@ -1284,9 +1290,9 @@ static void DumpShaderRecompilerSpirv(const char* type, uint64_t shader_hash,
|
||||
|
||||
static std::atomic_int id = 0;
|
||||
|
||||
const auto base_name = Config::GetShaderLogFolder() /
|
||||
fmt::format("{:04d}_{:04d}_new_shader_{}_{:016x}",
|
||||
GraphicsRunGetFrameNum(), id++, type, shader_hash);
|
||||
const auto base_name =
|
||||
Config::GetShaderLogFolder() /
|
||||
fmt::format("{:04d}_new_shader_{}_{:016x}", id++, type, shader_hash);
|
||||
Common::File::CreateDirectories(base_name.parent_path());
|
||||
|
||||
Common::File spv_file;
|
||||
@@ -1335,9 +1341,9 @@ static void DumpShaderRecompilerOriginal(const char* type, uint64_t shader_hash,
|
||||
|
||||
static std::atomic_int id = 0;
|
||||
|
||||
const auto base_name = Config::GetShaderLogFolder() / "original" /
|
||||
fmt::format("{:04d}_{:04d}_new_shader_{}_{:016x}",
|
||||
GraphicsRunGetFrameNum(), id++, type, shader_hash);
|
||||
const auto base_name =
|
||||
Config::GetShaderLogFolder() / "original" /
|
||||
fmt::format("{:04d}_new_shader_{}_{:016x}", id++, type, shader_hash);
|
||||
Common::File::CreateDirectories(base_name.parent_path());
|
||||
|
||||
Common::File bin_file;
|
||||
@@ -1437,7 +1443,7 @@ bool ShaderCompileSpirvPS(const HW::PixelShaderInfo& regs, const HW::ShaderRegis
|
||||
options.user_data_count = regs.ps_regs.rsrc2.user_sgpr;
|
||||
options.user_data = regs.ps_user_sgpr.value;
|
||||
options.descriptor_set = input_info.descriptor_set;
|
||||
options.push_constant_offset = 0;
|
||||
options.push_constant_offset = input_info.push_constant_offset;
|
||||
options.pixel_input_info = &input_info;
|
||||
options.dump_ir = ShaderRecompilerTextDumpEnabled();
|
||||
options.early_dump = options.dump_ir;
|
||||
@@ -1591,6 +1597,7 @@ ShaderId ShaderGetIdPS(const HW::PixelShaderInfo& regs, const ShaderPixelInputIn
|
||||
ret.crc32 = regs.ps_regs.chksum & 0xffffffffu;
|
||||
|
||||
ret.ids.push_back(input_info.descriptor_set);
|
||||
ret.ids.push_back(input_info.push_constant_offset);
|
||||
ret.ids.push_back(input_info.input_num);
|
||||
ret.ids.push_back(input_info.ps_system_input_base);
|
||||
ret.ids.push_back(static_cast<uint32_t>(input_info.ps_pos_x));
|
||||
|
||||
Reference in New Issue
Block a user