|
@@ -1571,7 +1571,7 @@ VIEW_INSTANCING_DESC :: struct {
|
|
|
Flags: VIEW_INSTANCING_FLAGS,
|
|
|
}
|
|
|
|
|
|
-SHADER_COMPONENT_MAPPING :: enum i32 {
|
|
|
+SHADER_COMPONENT_MAPPING :: enum u32 {
|
|
|
FROM_MEMORY_COMPONENT_0 = 0,
|
|
|
FROM_MEMORY_COMPONENT_1 = 1,
|
|
|
FROM_MEMORY_COMPONENT_2 = 2,
|
|
@@ -1579,6 +1579,16 @@ SHADER_COMPONENT_MAPPING :: enum i32 {
|
|
|
FORCE_VALUE_0 = 4,
|
|
|
FORCE_VALUE_1 = 5,
|
|
|
}
|
|
|
+ENCODE_SHADER_4_COMPONENT_MAPPING :: #force_inline proc "contextless" (Src0, Src1, Src2, Src3: u32) -> u32 {
|
|
|
+ return (Src0 & SHADER_COMPONENT_MAPPING_MASK) |
|
|
|
+ ((Src1 & SHADER_COMPONENT_MAPPING_MASK) << SHADER_COMPONENT_MAPPING_SHIFT) |
|
|
|
+ ((Src2 & SHADER_COMPONENT_MAPPING_MASK) << (SHADER_COMPONENT_MAPPING_SHIFT * 2)) |
|
|
|
+ ((Src3 & SHADER_COMPONENT_MAPPING_MASK) << (SHADER_COMPONENT_MAPPING_SHIFT * 3)) |
|
|
|
+ SHADER_COMPONENT_MAPPING_ALWAYS_SET_BIT_AVOIDING_ZEROMEM_MISTAKES
|
|
|
+}
|
|
|
+DECODE_SHADER_4_COMPONENT_MAPPING :: #force_inline proc "contextless" (ComponentToExtract, Mapping: u32) -> u32 {
|
|
|
+ return Mapping >> (SHADER_COMPONENT_MAPPING_SHIFT * ComponentToExtract) & SHADER_COMPONENT_MAPPING_MASK
|
|
|
+}
|
|
|
|
|
|
BUFFER_SRV_FLAGS :: distinct bit_set[BUFFER_SRV_FLAG; u32]
|
|
|
BUFFER_SRV_FLAG :: enum u32 {
|