rsx: Fix program generation and compact referenced data blocks

This commit is contained in:
kd-11 2022-03-23 23:59:42 +03:00 committed by kd-11
parent 9a2d4fe46b
commit d057ffe80f
8 changed files with 61 additions and 41 deletions

View file

@ -863,10 +863,6 @@ namespace rsx
void thread::fill_vertex_program_constants_data(void* buffer, const std::vector<u16>& reloc_table)
{
if (!reloc_table.empty()) [[ likely ]]
{
memcpy(buffer, rsx::method_registers.transform_constants.data(), 468 * 4 * sizeof(float));
}
else
{
char* dst = reinterpret_cast<char*>(buffer);
for (const auto& index : reloc_table)
@ -875,6 +871,10 @@ namespace rsx
dst += 16;
}
}
else
{
memcpy(buffer, rsx::method_registers.transform_constants.data(), 468 * 4 * sizeof(float));
}
}
void thread::fill_fragment_state_buffer(void* buffer, const RSXFragmentProgram& /*fragment_program*/)