diff options
author | ReinUsesLisp <reinuseslisp@airmail.cc> | 2019-12-29 02:51:04 +0100 |
---|---|---|
committer | ReinUsesLisp <reinuseslisp@airmail.cc> | 2020-02-28 21:56:42 +0100 |
commit | 6530144ccb0adccf101fcc443f9b21a027faa7a7 (patch) | |
tree | 12fc3b2524e515f86812fb1155ba50dda9b9fbdc /src/video_core/renderer_opengl/gl_state_tracker.cpp | |
parent | gl_state_tracker: Implement dirty flags for scissors (diff) | |
download | yuzu-6530144ccb0adccf101fcc443f9b21a027faa7a7.tar yuzu-6530144ccb0adccf101fcc443f9b21a027faa7a7.tar.gz yuzu-6530144ccb0adccf101fcc443f9b21a027faa7a7.tar.bz2 yuzu-6530144ccb0adccf101fcc443f9b21a027faa7a7.tar.lz yuzu-6530144ccb0adccf101fcc443f9b21a027faa7a7.tar.xz yuzu-6530144ccb0adccf101fcc443f9b21a027faa7a7.tar.zst yuzu-6530144ccb0adccf101fcc443f9b21a027faa7a7.zip |
Diffstat (limited to '')
-rw-r--r-- | src/video_core/renderer_opengl/gl_state_tracker.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/video_core/renderer_opengl/gl_state_tracker.cpp b/src/video_core/renderer_opengl/gl_state_tracker.cpp index 9e1db59ae..3c6231d58 100644 --- a/src/video_core/renderer_opengl/gl_state_tracker.cpp +++ b/src/video_core/renderer_opengl/gl_state_tracker.cpp @@ -61,6 +61,16 @@ void SetupDirtyRenderTargets(Tables& tables) { } } +void SetupDirtyColorMasks(Tables& tables) { + tables[0][OFF(color_mask_common)] = ColorMaskCommon; + for (std::size_t rt = 0; rt < Regs::NumRenderTargets; ++rt) { + const std::size_t offset = OFF(color_mask) + rt * NUM(color_mask[0]); + FillBlock(tables[0], offset, NUM(color_mask[0]), ColorMask0 + rt); + } + + FillBlock(tables[1], OFF(color_mask), NUM(color_mask), ColorMasks); +} + void SetupDirtyViewports(Tables& tables) { for (std::size_t i = 0; i < Regs::NumViewports; ++i) { const std::size_t transf_offset = OFF(viewport_transform) + i * NUM(viewport_transform[0]); @@ -104,6 +114,7 @@ void StateTracker::Initialize() { auto& tables = dirty.tables; SetupDirtyRenderTargets(tables); + SetupDirtyColorMasks(tables); SetupDirtyViewports(tables); SetupDirtyScissors(tables); } |