Take the following situation:
1. Start RP with D/S undefined: loadOp = DONT_CARE, storeOp = STORE
* At this point, onDepthStencilWrite calls image->onWrite, setting
depth/stencil contents defined.
2. At endRP, observe depth/stencil is not used: storeOp = DONT_CARE
3. Start another RP with D/S: loadOp = LOAD, storeOp = STORE
Because the call to image->onWrite was done at startRP, the contents of
the depth/stencil image is marked as defined, and the next render pass
is loading these data. This change moves image->onWrite to
endRenderPass, and only calls it if storeOp = STORE, taking advantage of
all the opportunistic optimizations that try to set storeOp to another
value.
Bug: angleproject:4836
Change-Id: I9858e5caa6b1f67f841a5c6356e66927356ef469
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2548319Reviewed-by:
Jamie Madill <jmadill@chromium.org>
Reviewed-by:
Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| capture_replay_tests | Loading commit data... | |
| compiler_tests | Loading commit data... | |
| deqp_support | Loading commit data... | |
| egl_tests | Loading commit data... | |
| gl_tests | Loading commit data... | |
| gles1_conformance_tests | Loading commit data... | |
| gles_conformance_tests | Loading commit data... | |
| perf_tests | Loading commit data... | |
| preprocessor_tests | Loading commit data... | |
| restricted_traces | Loading commit data... | |
| test_expectations | Loading commit data... | |
| test_utils | Loading commit data... | |
| util_tests | Loading commit data... | |
| BUILD.gn | Loading commit data... | |
| OWNERS | Loading commit data... | |
| angle_deqp_tests_main.cpp | Loading commit data... | |
| angle_end2end_tests.gni | Loading commit data... | |
| angle_end2end_tests_main.cpp | Loading commit data... | |
| angle_perftests.gni | Loading commit data... | |
| angle_perftests_main.cpp | Loading commit data... | |
| angle_system_info_tests_main.cpp | Loading commit data... | |
| angle_unittest_main.cpp | Loading commit data... | |
| angle_unittests.gni | Loading commit data... | |
| angle_unittests_utils.h | Loading commit data... | |
| angle_white_box_tests.gni | Loading commit data... | |
| angle_white_box_tests_main.cpp | Loading commit data... | |
| capture_replay_tests.py | Loading commit data... |