Line 165:
Line 165:
| 0x18
| 0x18
| 0x4
| 0x4
−
| Offset (relative to DVLE start) to unk1 table
+
| Offset (relative to DVLE start) to uniform table
|-
|-
| 0x1C
| 0x1C
| 0x4
| 0x4
−
| Number of entries in unk1 table (each entry is 0x14-byte long)
+
| Number of entries in uniform table (each entry is 0x14-byte long)
|-
|-
| 0x20
| 0x20
Line 228:
Line 228:
| Offset (relative to DVLE symbol table start) to label's symbol
| Offset (relative to DVLE symbol table start) to label's symbol
|-
|-
+
|}
+
+
Uniform table entry :
+
{| class="wikitable" border="1"
+
|-
+
! Offset
+
! Size
+
! Description
+
|-
+
| 0x2
+
| 0x1
+
| Uniform ID
+
|-
+
| 0x4
+
| 0x4
+
| x (float24)
+
|-
+
| 0x8
+
| 0x4
+
| y (float24)
+
|-
+
| 0xC
+
| 0x4
+
| z (float24)
+
|-
+
| 0x10
+
| 0x4
+
| w (float24)
|}
|}
Line 253:
Line 281:
Each DVLE is associated to an individual shader shader program contained in the binary blob. A single shader binary blob may contain multiple shader programs of the same kind.
Each DVLE is associated to an individual shader shader program contained in the binary blob. A single shader binary blob may contain multiple shader programs of the same kind.
−
The data contained in unk1 table is sent over to the GPU.
+
Each program's constants are stored as vec4 in a uniform table. These are sent over to the GPU when changing to a give program.