shader: Implement indexed Position and ClipDistances

This commit is contained in:
FernandoS27 2021-04-04 09:38:15 +02:00 committed by ameerj
parent 1d51803169
commit 73cb17f41b
3 changed files with 100 additions and 11 deletions

View file

@ -69,7 +69,20 @@ struct ProgramHeader {
union {
struct {
INSERT_PADDING_BYTES_NOINIT(3); // ImapSystemValuesA
INSERT_PADDING_BYTES_NOINIT(1); // ImapSystemValuesB
union {
BitField<0, 1, u8> primitive_array_id;
BitField<1, 1, u8> rt_array_index;
BitField<2, 1, u8> viewport_index;
BitField<3, 1, u8> point_size;
BitField<4, 1, u8> position_x;
BitField<5, 1, u8> position_y;
BitField<6, 1, u8> position_z;
BitField<7, 1, u8> position_w;
BitField<0, 4, u8> first;
BitField<4, 4, u8> position;
u8 raw;
} imap_systemb;
union {
BitField<0, 1, u8> x;
@ -99,7 +112,20 @@ struct ProgramHeader {
INSERT_PADDING_BYTES_NOINIT(5); // ImapFixedFncTexture[10]
INSERT_PADDING_BYTES_NOINIT(1); // ImapReserved
INSERT_PADDING_BYTES_NOINIT(3); // OmapSystemValuesA
INSERT_PADDING_BYTES_NOINIT(1); // OmapSystemValuesB
union {
BitField<0, 1, u8> primitive_array_id;
BitField<1, 1, u8> rt_array_index;
BitField<2, 1, u8> viewport_index;
BitField<3, 1, u8> point_size;
BitField<4, 1, u8> position_x;
BitField<5, 1, u8> position_y;
BitField<6, 1, u8> position_z;
BitField<7, 1, u8> position_w;
BitField<0, 4, u8> first;
BitField<4, 4, u8> position;
u8 raw;
} omap_systemb;
union {
BitField<0, 1, u8> x;
@ -148,7 +174,20 @@ struct ProgramHeader {
struct {
INSERT_PADDING_BYTES_NOINIT(3); // ImapSystemValuesA
INSERT_PADDING_BYTES_NOINIT(1); // ImapSystemValuesB
union {
BitField<0, 1, u8> primitive_array_id;
BitField<1, 1, u8> rt_array_index;
BitField<2, 1, u8> viewport_index;
BitField<3, 1, u8> point_size;
BitField<4, 1, u8> position_x;
BitField<5, 1, u8> position_y;
BitField<6, 1, u8> position_z;
BitField<7, 1, u8> position_w;
BitField<0, 4, u8> first;
BitField<4, 4, u8> position;
u8 raw;
} imap_systemb;
union {
BitField<0, 2, PixelImap> x;