AcademySoftwareFoundation / AcademySoftwareFoundation/OpenColorIO
Add options for Hlsl shader generator to allow register selection.
- Lenguaje dominante
- C++
- Estrellas
- 2.1k
- Forks
- 503
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
Hello,
in the current state OCIO does not allow generated code to manually specify register slots (d3d11/12):
Example of generated code :
`Texture2D ocio_lut1d_0;
SamplerState ocio_lut1d_0Sampler;`
This makes reflecting compiled shader (Nearly) mandatory to find the binding location, which is not desirable in many cases.
It would be nice to have an option to be able to set first register slot by hand, then get them generated in a fixed way, for example :
`shaderDesc->setLanguage(GPU_LANGUAGE_HLSL_DX11);
shaderDesc->setFunctionName(functionName);
shaderDesc->setResourceStartSlot(1);
shaderDesc->setSamplerStartSlot(4);
Generated code would become:
`Texture2D ocio_lut1d_0 : register(t1);
SamplerState ocio_lut1d_0Sampler : register(s4) `
On a later stage, supporting bindless for latest d3d12/vulkan implementations would also be nice.
Thanks
Julien
Guía de contribución
Línea de trabajo
Localiza el generador de shaders HLSL y los puntos de entrada para el manejo de opciones de ShaderDesc, y luego inspecciona cómo se emiten las declaraciones de texturas y samplers. Añade slots iniciales configurables para recursos y samplers, y verifica que el HLSL de D3D11/D3D12 generado incluya las vinculaciones de registros solicitadas.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- cpp
- Área
- computer-graphics
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 42/100