Hash :
0cdbc781
Author :
Date :
2025-03-06T11:22:18
WGSL: Output samplers, including samplers from structs This output two WGSL variables for each GLSL sampler, including samplers in structs. This does not output the correct types for the WGSL variables, yet, nor does it generate texture access function calls. It also can't deal with arrays of samplers, which are not allowed in WGSL. Note that WGSL does not allow structs containing samplers to be arguments to a function, like Vulkan, nor does it allowed arrays of samplers at all, unlike Vulkan. This deals with the former problem the same way as Vulkan and Metal, by monomorphizing functions that take unsupported arguments. Bug: angleproject:389145696 Change-Id: I346688783dd2771c8fe6848b6783d948ed111783 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6253672 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Matthew Denton <mpdenton@chromium.org>
//
// Copyright 2024 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_WGSL_H_
#define COMPILER_TRANSLATOR_WGSL_H_
#include "compiler/translator/Compiler.h"
namespace sh
{
class TranslatorWGSL : public TCompiler
{
public:
TranslatorWGSL(sh::GLenum type, ShShaderSpec spec, ShShaderOutput output);
protected:
bool preTranslateTreeModifications(TIntermBlock *root);
bool translate(TIntermBlock *root,
const ShCompileOptions &compileOptions,
PerformanceDiagnostics *perfDiagnostics) override;
[[nodiscard]] bool shouldFlattenPragmaStdglInvariantAll() override;
};
} // namespace sh
#endif // COMPILER_TRANSLATOR_WGSL_H_