1 //
2 // Copyright 2021 The ANGLE Project Authors. All rights reserved.
3 // Use of this source code is governed by a BSD-style license that can be
4 // found in the LICENSE file.
5 //
6 // RewriteR32fImages: Change images qualified with r32f to use r32ui instead.  The only supported
7 // operation on these images is imageAtomicExchange(), which works identically with r32ui.  This
8 // avoids requiring atomic operations support for the R32_FLOAT format in Vulkan.
9 
10 #ifndef COMPILER_TRANSLATOR_TREEOPS_VULKAN_REWRITER32FIMAGES_H_
11 #define COMPILER_TRANSLATOR_TREEOPS_VULKAN_REWRITER32FIMAGES_H_
12 
13 #include "common/angleutils.h"
14 
15 namespace sh
16 {
17 class TCompiler;
18 class TIntermBlock;
19 class TSymbolTable;
20 
21 ANGLE_NO_DISCARD bool RewriteR32fImages(TCompiler *compiler,
22                                         TIntermBlock *root,
23                                         TSymbolTable *symbolTable);
24 }  // namespace sh
25 
26 #endif  // COMPILER_TRANSLATOR_TREEOPS_VULKAN_REWRITER32FIMAGES_H_
27