1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
//! Original PTX specification:
//!
//! tld4.comp.2d.v4.dtype.f32 d{|p}, [a, c] {, e} {, f};
//! tld4.comp.geom.v4.dtype.f32 d{|p}, [a, b, c] {, e} {, f}; // explicit sampler
//! .comp = { .r, .g, .b, .a };
//! .geom = { .2d, .a2d, .cube, .acube };
//! .dtype = { .u32, .s32, .f32 };
#![allow(unused)]
use crate::r#type::common::*;
pub mod section_0 {
use crate::r#type::common::*;
#[derive(Debug, Clone, PartialEq)]
pub enum Comp {
R, // .r
G, // .g
B, // .b
A, // .a
}
#[derive(Debug, Clone, PartialEq)]
pub enum Dtype {
U32, // .u32
S32, // .s32
F32, // .f32
}
#[derive(Debug, Clone, PartialEq)]
pub enum Geom {
Acube, // .acube
Cube, // .cube
A2d, // .a2d
_2d, // .2d
}
#[derive(Debug, Clone, PartialEq)]
pub struct Tld4Comp2dV4DtypeF32 {
pub comp: Comp, // .comp
pub _2d: (), // .2d
pub v4: (), // .v4
pub dtype: Dtype, // .dtype
pub f32: (), // .f32
pub d: GeneralOperand, // first operand of d{|p}
pub p: Option<GeneralOperand>, // optional second operand of d{|p}
pub a: TexHandler2, // [a, c]
pub e: Option<GeneralOperand>, // {, e}
pub f: Option<GeneralOperand>, // {, f}
}
#[derive(Debug, Clone, PartialEq)]
pub struct Tld4CompGeomV4DtypeF32 {
pub comp: Comp, // .comp
pub geom: Geom, // .geom
pub v4: (), // .v4
pub dtype: Dtype, // .dtype
pub f32: (), // .f32
pub d: GeneralOperand, // first operand of d{|p}
pub p: Option<GeneralOperand>, // optional second operand of d{|p}
pub a: TexHandler3, // [a, b, c]
pub e: Option<GeneralOperand>, // {, e}
pub f: Option<GeneralOperand>, // {, f}
}
}
// Re-export types with section suffixes to avoid naming conflicts
// e.g., Type0 for section_0::Type, Type1 for section_1::Type
pub use section_0::Comp as Comp0;
pub use section_0::Dtype as Dtype0;
pub use section_0::Geom as Geom0;
pub use section_0::Tld4Comp2dV4DtypeF32;
pub use section_0::Tld4CompGeomV4DtypeF32;