mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-10 00:41:26 +12:00
rsx: Move shader analysis+prefetch to the end of the draw call
This commit is contained in:
parent
8e07b19bc7
commit
d775c8dc73
4 changed files with 20 additions and 14 deletions
|
@ -360,16 +360,6 @@ namespace rsx
|
|||
}
|
||||
}
|
||||
|
||||
if (m_graphics_state & rsx::pipeline_state::fragment_program_ucode_dirty)
|
||||
{
|
||||
// Request for update of fragment constants if the program block is invalidated
|
||||
m_graphics_state |= rsx::pipeline_state::fragment_constants_dirty;
|
||||
}
|
||||
|
||||
// Preload the GPU programs for this draw call if needed
|
||||
prefetch_vertex_program();
|
||||
prefetch_fragment_program();
|
||||
|
||||
in_begin_end = true;
|
||||
}
|
||||
|
||||
|
@ -1575,6 +1565,18 @@ namespace rsx
|
|||
}
|
||||
}
|
||||
|
||||
void thread::analyse_current_rsx_pipeline()
|
||||
{
|
||||
if (m_graphics_state & rsx::pipeline_state::fragment_program_ucode_dirty)
|
||||
{
|
||||
// Request for update of fragment constants if the program block is invalidated
|
||||
m_graphics_state |= rsx::pipeline_state::fragment_constants_dirty;
|
||||
}
|
||||
|
||||
prefetch_vertex_program();
|
||||
prefetch_fragment_program();
|
||||
}
|
||||
|
||||
void thread::get_current_vertex_program(const std::array<std::unique_ptr<rsx::sampled_image_descriptor_base>, rsx::limits::vertex_textures_count>& sampler_descriptors)
|
||||
{
|
||||
if (!(m_graphics_state & rsx::pipeline_state::vertex_program_dirty))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue