mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-08 07:51:28 +12:00
rsx: Fix insertion of execution barriers
- Ignore barriers inserted after BEGIN but before any draw commands are emitted - Properly process tail barriers inserted before END but after draw commands are submitted - Ignore execution barriers with no effect (same register value written)
This commit is contained in:
parent
1d19f71a46
commit
8a186bb97e
4 changed files with 47 additions and 5 deletions
|
@ -632,7 +632,9 @@ namespace rsx
|
|||
|
||||
void set_vertex_base_offset(thread* rsx, u32 reg, u32 arg)
|
||||
{
|
||||
if (rsx->in_begin_end)
|
||||
if (rsx->in_begin_end &&
|
||||
!rsx::method_registers.current_draw_clause.empty() &&
|
||||
reg != method_registers.register_previous_value)
|
||||
{
|
||||
// Revert change to queue later
|
||||
method_registers.decode(reg, method_registers.register_previous_value);
|
||||
|
@ -644,7 +646,9 @@ namespace rsx
|
|||
|
||||
void set_index_base_offset(thread* rsx, u32 reg, u32 arg)
|
||||
{
|
||||
if (rsx->in_begin_end)
|
||||
if (rsx->in_begin_end &&
|
||||
!rsx::method_registers.current_draw_clause.empty() &&
|
||||
reg != method_registers.register_previous_value)
|
||||
{
|
||||
// Revert change to queue later
|
||||
method_registers.decode(reg, method_registers.register_previous_value);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue