mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-12-14 23:56:16 +00:00
tint: spir-v reader: fix atomicCompareExchangeWeak with var comparator
Also fix HLSL generator to unwrap the ref type when emitting the comparator value. Bug: tint:1185 Change-Id: I01d04ca6357e72fd5ead0f25012ab39794e65da5 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/94522 Reviewed-by: Ben Clayton <bclayton@chromium.org> Commit-Queue: Antonio Maiorano <amaiorano@google.com> Kokoro: Kokoro <noreply+kokoro@google.com>
This commit is contained in:
committed by
Dawn LUCI CQ
parent
606abfbeae
commit
f99671b830
@@ -1779,8 +1779,8 @@ bool GeneratorImpl::EmitWorkgroupAtomicCall(std::ostream& out,
|
||||
|
||||
{ // T compare_value = <compare_value>;
|
||||
auto pre = line();
|
||||
if (!EmitTypeAndName(pre, TypeOf(compare_value), ast::StorageClass::kNone,
|
||||
ast::Access::kUndefined, compare)) {
|
||||
if (!EmitTypeAndName(pre, TypeOf(compare_value)->UnwrapRef(),
|
||||
ast::StorageClass::kNone, ast::Access::kUndefined, compare)) {
|
||||
return false;
|
||||
}
|
||||
pre << " = ";
|
||||
|
||||
@@ -3272,7 +3272,8 @@ bool Builder::GenerateAtomicBuiltin(const sem::Call* call,
|
||||
value,
|
||||
});
|
||||
case sem::BuiltinType::kAtomicCompareExchangeWeak: {
|
||||
auto comparator = GenerateExpression(call->Arguments()[1]->Declaration());
|
||||
auto comparator =
|
||||
GenerateExpressionWithLoadIfNeeded(call->Arguments()[1]->Declaration());
|
||||
if (comparator == 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user