mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-12 01:38:37 +12:00
vk: Short-circuit program load if state did not change
- TODO: Incorporate VK_EXT_extended_dynamic_state
This commit is contained in:
parent
3dd6e5664c
commit
c7fed20f3c
3 changed files with 36 additions and 3 deletions
|
@ -820,6 +820,7 @@ namespace rsx
|
|||
if (arg != method_registers.register_previous_value)
|
||||
{
|
||||
rsx->on_framebuffer_options_changed(reg);
|
||||
rsx->m_graphics_state |= rsx::pipeline_config_dirty;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2531,6 +2532,23 @@ namespace rsx
|
|||
state_signals[NV4097_SET_DEPTH_BOUNDS_MAX] = rsx::depth_bounds_state_dirty;
|
||||
state_signals[NV4097_SET_FRONT_FACE] = rsx::pipeline_config_dirty;
|
||||
state_signals[NV4097_SET_ZMIN_MAX_CONTROL] = rsx::pipeline_config_dirty;
|
||||
state_signals[NV4097_SET_LOGIC_OP_ENABLE] = rsx::pipeline_config_dirty;
|
||||
state_signals[NV4097_SET_LOGIC_OP] = rsx::pipeline_config_dirty;
|
||||
state_signals[NV4097_SET_BLEND_ENABLE] = rsx::pipeline_config_dirty;
|
||||
state_signals[NV4097_SET_BLEND_ENABLE_MRT] = rsx::pipeline_config_dirty;
|
||||
state_signals[NV4097_SET_STENCIL_FUNC] = rsx::pipeline_config_dirty;
|
||||
state_signals[NV4097_SET_BACK_STENCIL_FUNC] = rsx::pipeline_config_dirty;
|
||||
state_signals[NV4097_SET_ANTI_ALIASING_CONTROL] = rsx::pipeline_config_dirty;
|
||||
state_signals[NV4097_SET_RESTART_INDEX_ENABLE] = rsx::pipeline_config_dirty;
|
||||
}
|
||||
|
||||
// Sanity checks
|
||||
for (size_t id = 0; id < methods.size(); ++id)
|
||||
{
|
||||
if (methods[id] && state_signals[id])
|
||||
{
|
||||
rsx_log.error("FIXME: Method register 0x%x is registered as a method and signal. The signal will be ignored.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3534,7 +3552,6 @@ namespace rsx
|
|||
bind(NV4097_CLEAR_ZCULL_SURFACE, nv4097::clear_zcull);
|
||||
bind(NV4097_SET_DEPTH_TEST_ENABLE, nv4097::set_surface_options_dirty_bit);
|
||||
bind(NV4097_SET_DEPTH_FUNC, nv4097::set_surface_options_dirty_bit);
|
||||
bind(NV4097_SET_STENCIL_TEST_ENABLE, nv4097::set_surface_options_dirty_bit);
|
||||
bind(NV4097_SET_DEPTH_MASK, nv4097::set_surface_options_dirty_bit);
|
||||
bind(NV4097_SET_COLOR_MASK, nv4097::set_surface_options_dirty_bit);
|
||||
bind(NV4097_SET_COLOR_MASK_MRT, nv4097::set_surface_options_dirty_bit);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue