mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-01-29 00:33:01 +00:00
rsx: Fix build
This commit is contained in:
parent
ad108720fb
commit
4836a03a7d
@ -87,8 +87,9 @@ namespace rsx
|
||||
const u32 program_offset = (shader_program & ~0x3);
|
||||
|
||||
const u32 addr = get_address(program_offset, program_location);
|
||||
const u32 program_start = program_hash_util::fragment_program_utils::get_fragment_program_start(vm::base(addr));
|
||||
const u32 ucode_size = program_hash_util::fragment_program_utils::get_fragment_program_ucode_size(vm::base(addr + program_start));
|
||||
const auto program_info = program_hash_util::fragment_program_utils::analyse_fragment_program(vm::base(addr));
|
||||
const u32 program_start = program_info.program_start_offset;
|
||||
const u32 ucode_size = program_info.program_ucode_length;
|
||||
|
||||
frame_capture_data::memory_block block;
|
||||
block.addr = addr;
|
||||
|
@ -129,6 +129,7 @@ fragment_program_utils::fragment_program_metadata fragment_program_utils::analys
|
||||
const qword *instBuffer = (const qword*)ptr;
|
||||
size_t instIndex = 0;
|
||||
s32 program_offset = -1;
|
||||
u32 ucode_size = 0;
|
||||
u16 textures_mask = 0;
|
||||
|
||||
while (true)
|
||||
@ -163,13 +164,22 @@ fragment_program_utils::fragment_program_metadata fragment_program_utils::analys
|
||||
{
|
||||
//Instruction references constant, skip one slot occupied by data
|
||||
instIndex++;
|
||||
ucode_size += 16;
|
||||
}
|
||||
}
|
||||
|
||||
if (program_offset >= 0)
|
||||
{
|
||||
ucode_size += 16;
|
||||
}
|
||||
|
||||
if ((inst.word[0] >> 8) & 0x1)
|
||||
{
|
||||
if (program_offset < 0)
|
||||
{
|
||||
program_offset = instIndex * 16;
|
||||
ucode_size = 16;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
@ -177,7 +187,7 @@ fragment_program_utils::fragment_program_metadata fragment_program_utils::analys
|
||||
instIndex++;
|
||||
}
|
||||
|
||||
return{ (u32)program_offset, textures_mask };
|
||||
return{ (u32)program_offset, ucode_size, textures_mask };
|
||||
}
|
||||
|
||||
size_t fragment_program_utils::get_fragment_program_ucode_hash(const RSXFragmentProgram& program)
|
||||
|
@ -51,6 +51,7 @@ namespace program_hash_util
|
||||
struct fragment_program_metadata
|
||||
{
|
||||
u32 program_start_offset;
|
||||
u32 program_ucode_length;
|
||||
u16 referenced_textures_mask;
|
||||
};
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user