Resumen#
Cada valor integrado de una sintaxis, agrupado por etapa y escrito en C#. Elige la pestaña de tu sintaxis. El comentario sobre cada miembro nombra el concepto, así puedes encontrar el mismo valor en cualquier otra pestaña.
using YotsubaShader.Language;
using YotsubaShader.HlslSyntax;
// Etapa de vertex
public struct VertexBuiltIns
{
// Posición en clip space (salida de vertex)
[SV_Position] public Vector4 ClipSpacePosition;
// Índice de vértice
[SV_VertexID] public uint VertexIndex;
// Índice de instancia
[SV_InstanceID] public uint InstanceIndex;
// Vértice base
[SV_StartVertexLocation] public uint BaseVertex;
// Instancia base
[SV_StartInstanceLocation] public uint BaseInstance;
// Distancia de clip
[SV_ClipDistanceN] public float ClipDistance;
// Capa del render target
[SV_RenderTargetArrayIndex] public uint RenderTargetLayer;
// Índice de viewport
[SV_ViewportArrayIndex] public uint ViewportIndex;
}
// Etapa de fragment
public struct FragmentBuiltIns
{
// Coordenada de fragmento
[SV_Position] public Vector4 FragmentCoordinate;
// Indicador de cara frontal
[SV_IsFrontFace] public bool FrontFacingFlag;
// Profundidad del fragmento (salida)
[SV_Depth] public float FragmentDepth;
// Profundidad conservadora
[SV_DepthGreaterEqual] public float ConservativeDepth;
// Profundidad conservadora
[SV_DepthLessEqual] public float ConservativeDepth2;
// Referencia de stencil (salida)
[SV_StencilRef] public uint StencilReference;
// Índice de muestra
[SV_SampleIndex] public uint SampleIndex;
// Máscara de muestras
[SV_Coverage] public uint SampleMask;
// Índice de primitiva
[SV_PrimitiveID] public uint PrimitiveIndex;
// Coordenadas baricéntricas
[SV_Barycentrics] public Vector4 BarycentricCoordinates;
}
// Etapa de compute
public class ComputeBuiltIns
{
// Id de invocación global
[SV_DispatchThreadID] public UInt3 GlobalInvocationId;
// Id de invocación local
[SV_GroupThreadID] public UInt3 LocalInvocationId;
// Índice de invocación local
[SV_GroupIndex] public uint LocalInvocationIndex;
// Id de workgroup
[SV_GroupID] public UInt3 WorkgroupId;
// Tamaño del workgroup (atributo de método)
[ShaderStage(Stage.Compute)]
[numthreads(8, 8, 1)]
public void Compute() { }
}
using YotsubaShader.Language;
using YotsubaShader.GlslSyntax;
// Etapa de vertex
public struct VertexBuiltIns
{
// Posición en clip space (salida de vertex)
[gl_Position] public Vector4 ClipSpacePosition;
// Índice de vértice
[gl_VertexIndex] public int VertexIndex;
// Índice de instancia
[gl_InstanceIndex] public int InstanceIndex;
// Vértice base
[gl_BaseVertex] public int BaseVertex;
// Instancia base
[gl_BaseInstance] public int BaseInstance;
// Distancia de clip
[gl_ClipDistance] public float ClipDistance;
// Capa del render target
[gl_Layer] public uint RenderTargetLayer;
// Índice de viewport
[gl_ViewportIndex] public uint ViewportIndex;
}
// Etapa de fragment
public struct FragmentBuiltIns
{
// Coordenada de fragmento
[gl_FragCoord] public Vector4 FragmentCoordinate;
// Indicador de cara frontal
[gl_FrontFacing] public bool FrontFacingFlag;
// Profundidad del fragmento (salida)
[gl_FragDepth] public float FragmentDepth;
// Referencia de stencil (salida)
[gl_FragStencilRefARB] public uint StencilReference;
// Índice de muestra
[gl_SampleID] public uint SampleIndex;
// Máscara de muestras
[gl_SampleMask] public uint SampleMask;
// Máscara de muestras
[gl_SampleMaskIn] public uint SampleMask2;
// Índice de primitiva
[gl_PrimitiveID] public uint PrimitiveIndex;
// Coordenadas baricéntricas
[gl_BaryCoordEXT] public Vector4 BarycentricCoordinates;
// Coordenadas baricéntricas (sin perspectiva)
[gl_BaryCoordNoPerspEXT] public Vector4 BarycentricCoordinates2;
// Invocación auxiliar
[gl_HelperInvocation] public bool HelperInvocation;
// Posición de muestra
[gl_SamplePosition] public Vector2 SamplePosition;
}
// Etapa de compute
public class ComputeBuiltIns
{
// Id de invocación global
[gl_GlobalInvocationID] public UInt3 GlobalInvocationId;
// Id de invocación local
[gl_LocalInvocationID] public UInt3 LocalInvocationId;
// Índice de invocación local
[gl_LocalInvocationIndex] public uint LocalInvocationIndex;
// Id de workgroup
[gl_WorkGroupID] public UInt3 WorkgroupId;
// Número de workgroups
[gl_NumWorkGroups] public UInt3 NumberOfWorkgroups;
// Tamaño del workgroup (valor integrado)
[gl_WorkGroupSize] public UInt3 WorkgroupSize;
// Tamaño del subgrupo
[gl_SubgroupSize] public uint SubgroupSize;
// Id de invocación del subgrupo
[gl_SubgroupInvocationID] public UInt3 SubgroupInvocationId;
// Id del subgrupo
[gl_SubgroupID] public uint SubgroupId;
// Número de subgrupos
[gl_NumSubgroups] public uint NumberOfSubgroups;
// Tamaño del workgroup (atributo de método)
[ShaderStage(Stage.Compute)]
[layout_local_size(8, 8, 1)]
public void Compute() { }
}
using YotsubaShader.Language;
using YotsubaShader.MslSyntax;
// Etapa de vertex
public struct VertexBuiltIns
{
// Posición en clip space (salida de vertex)
[position] public Vector4 ClipSpacePosition;
// Índice de vértice
[vertex_id] public uint VertexIndex;
// Índice de instancia
[instance_id] public uint InstanceIndex;
// Vértice base
[base_vertex] public uint BaseVertex;
// Instancia base
[base_instance] public uint BaseInstance;
// Distancia de clip
[clip_distance] public float ClipDistance;
// Capa del render target
[render_target_array_index] public uint RenderTargetLayer;
// Índice de viewport
[viewport_array_index] public uint ViewportIndex;
}
// Etapa de fragment
public struct FragmentBuiltIns
{
// Coordenada de fragmento
[position] public Vector4 FragmentCoordinate;
// Indicador de cara frontal
[front_facing] public bool FrontFacingFlag;
// Profundidad del fragmento (salida)
[depth] public float FragmentDepth;
// Profundidad conservadora
[depth("greater")] public float ConservativeDepth;
// Profundidad conservadora
[depth("less")] public float ConservativeDepth2;
// Referencia de stencil (salida)
[stencil] public uint StencilReference;
// Índice de muestra
[sample_id] public uint SampleIndex;
// Máscara de muestras
[sample_mask] public uint SampleMask;
// Índice de primitiva
[primitive_id] public uint PrimitiveIndex;
// Coordenadas baricéntricas
[barycentric_coord] public Vector4 BarycentricCoordinates;
}
// Etapa de compute
public class ComputeBuiltIns
{
// Id de invocación global
[thread_position_in_grid] public UInt3 GlobalInvocationId;
// Id de invocación local
[thread_position_in_threadgroup] public UInt3 LocalInvocationId;
// Índice de invocación local
[thread_index_in_threadgroup] public uint LocalInvocationIndex;
// Id de workgroup
[threadgroup_position_in_grid] public UInt3 WorkgroupId;
// Número de workgroups
[threadgroups_per_grid] public UInt3 NumberOfWorkgroups;
// Tamaño del workgroup (valor integrado)
[threads_per_threadgroup] public UInt3 WorkgroupSize;
// Tamaño del subgrupo
[threads_per_simdgroup] public uint SubgroupSize;
// Id de invocación del subgrupo
[thread_index_in_simdgroup] public UInt3 SubgroupInvocationId;
// Id del subgrupo
[simdgroup_index_in_threadgroup] public uint SubgroupId;
// Número de subgrupos
[simdgroups_per_threadgroup] public uint NumberOfSubgroups;
}
using YotsubaShader.Language;
using YotsubaShader.SpirvSyntax;
// Etapa de vertex
public struct VertexBuiltIns
{
// Posición en clip space (salida de vertex)
[BuiltIn_Position] public Vector4 ClipSpacePosition;
// Índice de vértice
[BuiltIn_VertexIndex] public int VertexIndex;
// Índice de instancia
[BuiltIn_InstanceIndex] public int InstanceIndex;
// Vértice base
[BuiltIn_BaseVertex] public int BaseVertex;
// Instancia base
[BuiltIn_BaseInstance] public int BaseInstance;
// Distancia de clip
[BuiltIn_ClipDistance] public float ClipDistance;
// Capa del render target
[BuiltIn_Layer] public uint RenderTargetLayer;
// Índice de viewport
[BuiltIn_ViewportIndex] public uint ViewportIndex;
}
// Etapa de fragment
public struct FragmentBuiltIns
{
// Coordenada de fragmento
[BuiltIn_FragCoord] public Vector4 FragmentCoordinate;
// Indicador de cara frontal
[BuiltIn_FrontFacing] public bool FrontFacingFlag;
// Profundidad del fragmento (salida)
[BuiltIn_FragDepth] public float FragmentDepth;
// Referencia de stencil (salida)
[BuiltIn_FragStencilRef] public uint StencilReference;
// Índice de muestra
[BuiltIn_SampleId] public uint SampleIndex;
// Máscara de muestras
[BuiltIn_SampleMask] public uint SampleMask;
// Índice de primitiva
[BuiltIn_PrimitiveId] public uint PrimitiveIndex;
// Coordenadas baricéntricas
[BuiltIn_BaryCoord] public Vector4 BarycentricCoordinates;
// Coordenadas baricéntricas (sin perspectiva)
[BuiltIn_BaryCoordNoPersp] public Vector4 BarycentricCoordinates2;
// Invocación auxiliar
[BuiltIn_HelperInvocation] public bool HelperInvocation;
// Posición de muestra
[BuiltIn_SamplePosition] public Vector2 SamplePosition;
}
// Etapa de compute
public class ComputeBuiltIns
{
// Id de invocación global
[BuiltIn_GlobalInvocationId] public UInt3 GlobalInvocationId;
// Id de invocación local
[BuiltIn_LocalInvocationId] public UInt3 LocalInvocationId;
// Índice de invocación local
[BuiltIn_LocalInvocationIndex] public uint LocalInvocationIndex;
// Id de workgroup
[BuiltIn_WorkgroupId] public UInt3 WorkgroupId;
// Número de workgroups
[BuiltIn_NumWorkgroups] public UInt3 NumberOfWorkgroups;
// Tamaño del workgroup (valor integrado)
[BuiltIn_WorkgroupSize] public UInt3 WorkgroupSize;
// Tamaño del subgrupo
[BuiltIn_SubgroupSize] public uint SubgroupSize;
// Id de invocación del subgrupo
[BuiltIn_SubgroupInvocationId] public UInt3 SubgroupInvocationId;
// Id del subgrupo
[BuiltIn_SubgroupId] public uint SubgroupId;
// Número de subgrupos
[BuiltIn_NumSubgroups] public uint NumberOfSubgroups;
}
using YotsubaShader.Language;
using YotsubaShader.WgslSyntax;
// Etapa de vertex
public struct VertexBuiltIns
{
// Posición en clip space (salida de vertex)
[@builtin_position] public Vector4 ClipSpacePosition;
// Índice de vértice
[@builtin_vertex_index] public uint VertexIndex;
// Índice de instancia
[@builtin_instance_index] public uint InstanceIndex;
// Distancia de clip
[@builtin_clip_distances] public float ClipDistance;
}
// Etapa de fragment
public struct FragmentBuiltIns
{
// Coordenada de fragmento
[@builtin_position] public Vector4 FragmentCoordinate;
// Indicador de cara frontal
[@builtin_front_facing] public bool FrontFacingFlag;
// Profundidad del fragmento (salida)
[@builtin_frag_depth] public float FragmentDepth;
// Índice de muestra
[@builtin_sample_index] public uint SampleIndex;
// Máscara de muestras
[@builtin_sample_mask] public uint SampleMask;
// Índice de primitiva
[@builtin_primitive_index] public uint PrimitiveIndex;
}
// Etapa de compute
public class ComputeBuiltIns
{
// Id de invocación global
[@builtin_global_invocation_id] public UInt3 GlobalInvocationId;
// Id de invocación local
[@builtin_local_invocation_id] public UInt3 LocalInvocationId;
// Índice de invocación local
[@builtin_local_invocation_index] public uint LocalInvocationIndex;
// Id de workgroup
[@builtin_workgroup_id] public UInt3 WorkgroupId;
// Número de workgroups
[@builtin_num_workgroups] public UInt3 NumberOfWorkgroups;
// Tamaño del subgrupo
[@builtin_subgroup_size] public uint SubgroupSize;
// Id de invocación del subgrupo
[@builtin_subgroup_invocation_id] public UInt3 SubgroupInvocationId;
// Id del subgrupo
[@builtin_subgroup_id] public uint SubgroupId;
// Número de subgrupos
[@builtin_num_subgroups] public uint NumberOfSubgroups;
// Tamaño del workgroup (atributo de método)
[ShaderStage(Stage.Compute)]
[@workgroup_size(8, 8, 1)]
public void Compute() { }
}
Para recursos y slots de binding, consulta Atributos de recursos en todas las sintaxis.
Referencias para imprimir#
La referencia siguiente describe declaraciones de este checkout; no certifica compatibilidad de backends.
Utiliza como referencia actual las páginas de atributos generadas desde el código. Las guías PDF anteriores y su archivo fuente no se han actualizado para esta API y ya no se enlazan como documentación vigente.
