Commit 071d2a44 by Shahbaz Youssefi Committed by Commit Bot

Vulkan: Process dirty framebuffers first

The currently bound framebuffer affects some dirty bits. This means that processing those dirty bits temporarily use data from a framebuffer that's about to be changed. At best, that creates unnecessary dirty bits in the Vulkan pipeline description. Bug: angleproject:3204 Change-Id: Ie001d6c8fcc61af2e78cf2cb58a1691d8b735ff3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1639750 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
parent de70a713
......@@ -484,6 +484,11 @@ class State : angle::NonCopyable
enum DirtyBitType
{
// Note: process draw framebuffer binding first, so that other dirty bits whose effect
// depend on the current draw framebuffer are not processed while the old framebuffer is
// still bound.
DIRTY_BIT_DRAW_FRAMEBUFFER_BINDING,
DIRTY_BIT_READ_FRAMEBUFFER_BINDING,
DIRTY_BIT_SCISSOR_TEST_ENABLED,
DIRTY_BIT_SCISSOR,
DIRTY_BIT_VIEWPORT,
......@@ -526,8 +531,6 @@ class State : angle::NonCopyable
DIRTY_BIT_DITHER_ENABLED,
DIRTY_BIT_GENERATE_MIPMAP_HINT,
DIRTY_BIT_SHADER_DERIVATIVE_HINT,
DIRTY_BIT_READ_FRAMEBUFFER_BINDING,
DIRTY_BIT_DRAW_FRAMEBUFFER_BINDING,
DIRTY_BIT_RENDERBUFFER_BINDING,
DIRTY_BIT_VERTEX_ARRAY_BINDING,
DIRTY_BIT_DRAW_INDIRECT_BUFFER_BINDING,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment