mirror of
https://git.eden-emu.dev/eden-emu/eden.git
synced 2026-10-13 07:37:09 +00:00
67bada77f8
- [x] I have read and followed the [Contribution Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/CONTRIBUTING.md#code-contributions). - [x] I have read and followed the [AI Policy](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/AI.md) - [x] I have read and followed the [Coding Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/Coding.md) to the best of my ability. ------------------- Skip fragment shaders using a pattern that is not supported by non-NVIDIA drivers. Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4503 Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
43 lines
1.6 KiB
C++
43 lines
1.6 KiB
C++
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project
|
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
#pragma once
|
|
|
|
#include "shader_recompiler/environment.h"
|
|
#include "shader_recompiler/frontend/ir/program.h"
|
|
|
|
namespace Shader {
|
|
struct HostTranslateInfo;
|
|
}
|
|
|
|
namespace Shader::Optimization {
|
|
|
|
void CollectShaderInfoPass(Environment& env, IR::Program& program);
|
|
void ConditionalBarrierPass(IR::Program& program);
|
|
void ConstantPropagationPass(Environment& env, IR::Program& program);
|
|
void DeadCodeEliminationPass(IR::Program& program);
|
|
void GlobalMemoryToStorageBufferPass(IR::Program& program, const HostTranslateInfo& host_info);
|
|
void IdentityRemovalPass(IR::Program& program);
|
|
void LowerFp64ToFp32(IR::Program& program);
|
|
void LowerFp16ToFp32(IR::Program& program);
|
|
void LowerInt64ToInt32(IR::Program& program);
|
|
void RescalingPass(IR::Program& program);
|
|
void SsaRewritePass(IR::Program& program);
|
|
void PositionPass(Environment& env, IR::Program& program);
|
|
void TexturePass(Environment& env, IR::Program& program, const HostTranslateInfo& host_info);
|
|
void LayerPass(IR::Program& program, const HostTranslateInfo& host_info);
|
|
void VendorWorkaroundPass(IR::Program& program);
|
|
void VerificationPass(const IR::Program& program);
|
|
bool HasBrokenPattern(const IR::Program& program);
|
|
|
|
// Dual Vertex
|
|
void VertexATransformPass(IR::Program& program);
|
|
void VertexBTransformPass(IR::Program& program);
|
|
void JoinTextureInfo(Info& base, Info& source);
|
|
void JoinStorageInfo(Info& base, Info& source);
|
|
|
|
} // namespace Shader::Optimization
|