mirror of
https://github.com/KytyPS5/KytyPS5.git
synced 2026-10-28 08:13:05 +00:00
32 lines
1.1 KiB
C++
32 lines
1.1 KiB
C++
#ifndef EMULATOR_SRC_GRAPHICS_HOST_GPU_RENDERER_SHADERSUBGROUP_H_
|
|
#define EMULATOR_SRC_GRAPHICS_HOST_GPU_RENDERER_SHADERSUBGROUP_H_
|
|
|
|
#include "graphics/host_gpu/graphicContext.h"
|
|
#include "graphics/shader/recompiler/ShaderIR.h"
|
|
|
|
namespace Libs::Graphics {
|
|
|
|
enum class ShaderSubgroupMode {
|
|
Natural,
|
|
Controlled,
|
|
PerInvocationGraphics,
|
|
FlattenedMasks,
|
|
Unsupported
|
|
};
|
|
|
|
struct ShaderSubgroupConfiguration {
|
|
ShaderSubgroupMode mode = ShaderSubgroupMode::Unsupported;
|
|
uint32_t required_size = 0;
|
|
};
|
|
|
|
ShaderLaneMaskMode SelectGraphicsLaneMaskMode(const GraphicContext& context,
|
|
uint32_t guest_wave_size);
|
|
|
|
ShaderSubgroupConfiguration ConfigureShaderSubgroup(const GraphicContext& context,
|
|
vk::ShaderStageFlagBits stage,
|
|
const ShaderRecompiler::IR::Program& program);
|
|
|
|
} // namespace Libs::Graphics
|
|
|
|
#endif // EMULATOR_SRC_GRAPHICS_HOST_GPU_RENDERER_SHADERSUBGROUP_H_
|