Novedades de Yotsuba Shader
Descubre las últimas novedades del lenguaje, el compilador y las tecnologías relacionadas.
Recibe cada cambio
Deja tu correo y recibirás un aviso de news@yotsubashader.com cuando haya una versión nueva o un cambio importante. Nada más. Tu dirección se guarda en la lista de contactos del proyecto y se usa solo para estos avisos, y puedes responder "baja" en cualquier momento.
¡Gracias! Ya estás en la lista.
No se pudo enviar. Revisa la dirección e inténtalo de nuevo, o escribe a hello@yotsubashader.com.
¿Prefieres no usar correo? Sigue los cambios con un lector de feeds: versiones (Atom) · todos los cambios (Atom). En GitHub también puedes elegir Watch → Custom → Releases.
Errores de shader en tu IDE
Los diagnósticos de shaders en vivo y las comprobaciones por backend están previstos. Los diagnósticos C# actuales están disponibles mediante el playground.
El repositorio todavía no implementa YotsubaTargets ni un analizador de compatibilidad de backends. Consulta la documentación para conocer la API actual y los flujos previstos.
Un paquete por sintaxis
Los vocabularios de HLSL, GLSL, MSL, SPIR-V y WGSL ahora son paquetes separados: YotsubaShader.HlslSyntax, YotsubaShader.GlslSyntax, YotsubaShader.MslSyntax, YotsubaShader.SpirvSyntax y YotsubaShader.WgslSyntax.
Utiliza YotsubaShader.HlslSyntax para los atributos HLSL y YotsubaShader.HlslSyntax.Resources para recursos. El atributo numerado Location pertenece a YotsubaShader.SpirvSyntax. Son proyectos fuente; aquí no se confirma su disponibilidad publicada en NuGet.
Haz más con cinco sintaxis
Las sintaxis HLSL, GLSL, MSL, SPIR-V y WGSL ahora comparten el mismo modelo semántico. Elige los nombres que tu equipo conoce; el compilador los resuelve a los mismos valores integrados de la IR.
El frontend asocia SV_Position, gl_Position, position, BuiltIn_Position y @builtin_position al mismo slot de posición, y hace lo mismo con el índice de vértice. Los slots de interfaz declarados con [Location(n)] funcionan en todas las sintaxis.
Texturas y samplers en el lenguaje
Describe una textura con precisión: dimensión, tipo de componente, uso, profundidad, formato, arreglos y multimuestreo. Los samplers tienen su propio atributo.
TextureAttribute recibe un TextureDimension (D1, D2, D3, Cube) y un TextureComponentTypes (Float, Int, Uint), con ajustes opcionales Usage, Depth, Format, Arrayed y Multisampled. La IR lleva los mismos campos para que cada backend pueda traducirlos con fidelidad.
Descubrimiento de shaders basado en Roslyn
El frontend encuentra tus shaders por símbolo, no por texto, así que los alias, las directivas using y los nombres de atributo largos o cortos funcionan sin problema.
ShaderDiscovery.Find recorre los tipos de tu proyecto, devuelve cada clase con sus puntos de entrada en orden de declaración y expone los parámetros y tipos de retorno al resto del compilador. Un conjunto de pruebas cubre el descubrimiento y el análisis.
Atributos de recursos para cada sintaxis
Uniform buffers, storage buffers, texturas, samplers y slots de binding disponibles en cada sintaxis.
Cada sintaxis tiene sus propios atributos de recursos. SPIR-V utiliza DescriptorSet(n) y Binding(n) por separado; su marcador StorageBuffer no tiene una propiedad de modo de acceso.
Declaraciones de vectores y matrices más estrictas
Los tipos de vector declaran sus componentes con atributos, y las declaraciones no válidas fallan con excepciones claras.
Mezclar tipos de componente en un mismo vector lanza InconsistentVectorComponentTypeException; un tipo de componente no admitido lanza VectorComponentTypeNotValidException. Las matrices declaran sus columnas con [MatrixColumn].
Construcción de módulos SPIR-V 1.6
SPIR-V es un formato intermedio utilizado dentro del pipeline de compilación; los autores de shaders no necesitan construir sus módulos manualmente.
La tabla de operaciones se genera a partir de la gramática oficial de Khronos, así que cada instrucción, capacidad, modelo de ejecución y decoración está disponible como un valor tipado.
Gratis y de código abierto bajo la MS-PL
Yotsuba Shader se publica bajo la Microsoft Public License (MS-PL): úsalo en cualquier proyecto, comercial o no, sin pagar nada.
Eso incluye motores de juegos, frameworks y editores propietarios. Los shaders que escribes y los binarios que se generan a partir de ellos son tuyos.
