Hash :
88f582f6
Author :
Date :
2022-05-19T09:48:21
D3D: fix whole-array assignment to SSBOs. SSBOs in HLSL are implemented as RWByteAddressBuffer, which can only Load() or Store() up to 16 bytes at a time, so value-assignment of arrays doesn't work. The fix is to implement a traversal which unfolds such assignments into an element-by-element for-loop. Bug: angleproject:7334 Change-Id: I840c8ff7b62b67dc8935d4c09589d955798d96ee Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3656070 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Stephen White <senorblanco@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
//
// Copyright 2022 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
#ifndef COMPILER_TRANSLATOR_TREEOPS_D3D_AGGREGATEASSIGNARRAYSINSSBOS_H_
#define COMPILER_TRANSLATOR_TREEOPS_D3D_AGGREGATEASSIGNARRAYSINSSBOS_H_
#include "common/angleutils.h"
namespace sh
{
class TCompiler;
class TIntermBlock;
class TSymbolTable;
ANGLE_NO_DISCARD bool AggregateAssignArraysInSSBOs(TCompiler *compiler,
TIntermBlock *root,
TSymbolTable *symbolTable);
} // namespace sh
#endif // COMPILER_TRANSLATOR_TREEOPS_D3D_AGGREGATEASSIGNARRAYSINSSBOS_H_