mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-07 07:21:25 +12:00
rsx/vk: Implement hardware instancing (#16466)
* rsx: Add code to detect instanced draw commands * rsx: Add GLSL support for instanced rendering * rsx: Move draw call related functions to their own class * rsx: Move more functions from rsx thread to the draw command processor * rsx: Fix vertex program compiler crash * vk: Add support for hardware instanced draws * rsx: Fix instancing bug when indexed addressing is used to read constants * rsx: Fix rare crash in vertex program decompiler - This whole decompiler mess needs a rewrite * rsx: Handle dangling execution barriers * rsx: Do not use global registers object in logical "firmware" units * Cosmetic improvements * rsx: Test vertex program flags on each draw * rsx: Properly track changes in instancing state
This commit is contained in:
parent
15f29eedee
commit
62701154f1
32 changed files with 1411 additions and 906 deletions
|
@ -341,6 +341,7 @@ vertex_program_utils::vertex_program_metadata vertex_program_utils::analyse_vert
|
|||
usz vertex_program_storage_hash::operator()(const RSXVertexProgram &program) const
|
||||
{
|
||||
usz hash = vertex_program_utils::get_vertex_program_ucode_hash(program);
|
||||
hash ^= program.ctrl;
|
||||
hash ^= program.output_mask;
|
||||
hash ^= program.texture_state.texture_dimensions;
|
||||
hash ^= program.texture_state.multisampled_textures;
|
||||
|
@ -351,6 +352,8 @@ bool vertex_program_compare::operator()(const RSXVertexProgram &binary1, const R
|
|||
{
|
||||
if (binary1.output_mask != binary2.output_mask)
|
||||
return false;
|
||||
if (binary1.ctrl != binary2.ctrl)
|
||||
return false;
|
||||
if (binary1.texture_state != binary2.texture_state)
|
||||
return false;
|
||||
if (binary1.data.size() != binary2.data.size())
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue