Due to SSBO is translated to RWByteAddressBuffer in HLSL, the corresponding
atomic memory functions atomic* will be translated to
RWByteAddressBuffer.Interlocked*. The translation is like below:
atomicAdd(instanceName.data[0], 5u);
// becomes
uint _ssbo_atomicAdd_uint(RWByteAddressBuffer buffer, uint loc, uint value)
{
uint original_value;
buffer.InterlockedAdd(loc, value, original_value);
return original_value;
}
_ssbo_atomicAdd_uint(_instanceName, 0 + 16 * 0, 5);
Bug: angleproject:1951
Change-Id: If2af8bedb67a4135b443d2512d43c6058a78888d
Reviewed-on: https://chromium-review.googlesource.com/c/1370676Reviewed-by:
Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| 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... | |
| test_utils | Loading commit data... | |
| third_party | Loading commit data... | |
| util_tests | Loading commit data... | |
| BUILD.gn | 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_unittests.gni | Loading commit data... | |
| angle_unittests_main.cpp | 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... | |
| deqp.gni | Loading commit data... |