shader_recompiler: Support PointSize and ViewportIndex attributes. (#3541)

This commit is contained in:
squidbus
2025-09-06 20:11:46 -07:00
committed by GitHub
parent 081d52e615
commit 38e6dd49b1
12 changed files with 83 additions and 36 deletions

View File

@@ -555,9 +555,17 @@ void EmitContext::DefineVertexBlock() {
cull_distances = DefineVariable(type, spv::BuiltIn::CullDistance, spv::StorageClass::Output,
initializer);
}
if (info.stores.GetAny(IR::Attribute::RenderTargetId)) {
if (info.stores.GetAny(IR::Attribute::PointSize)) {
output_point_size =
DefineVariable(F32[1], spv::BuiltIn::PointSize, spv::StorageClass::Output);
}
if (info.stores.GetAny(IR::Attribute::RenderTargetIndex)) {
output_layer = DefineVariable(S32[1], spv::BuiltIn::Layer, spv::StorageClass::Output);
}
if (info.stores.GetAny(IR::Attribute::ViewportIndex)) {
output_viewport_index =
DefineVariable(S32[1], spv::BuiltIn::ViewportIndex, spv::StorageClass::Output);
}
}
void EmitContext::DefineOutputs() {