|
|
@ -41,30 +41,30 @@ struct Header {
|
|
|
|
BitField<26, 1, u32> does_load_or_store;
|
|
|
|
BitField<26, 1, u32> does_load_or_store;
|
|
|
|
BitField<27, 1, u32> does_fp64;
|
|
|
|
BitField<27, 1, u32> does_fp64;
|
|
|
|
BitField<28, 4, u32> stream_out_mask;
|
|
|
|
BitField<28, 4, u32> stream_out_mask;
|
|
|
|
} common0{};
|
|
|
|
} common0;
|
|
|
|
|
|
|
|
|
|
|
|
union {
|
|
|
|
union {
|
|
|
|
BitField<0, 24, u32> shader_local_memory_low_size;
|
|
|
|
BitField<0, 24, u32> shader_local_memory_low_size;
|
|
|
|
BitField<24, 8, u32> per_patch_attribute_count;
|
|
|
|
BitField<24, 8, u32> per_patch_attribute_count;
|
|
|
|
} common1{};
|
|
|
|
} common1;
|
|
|
|
|
|
|
|
|
|
|
|
union {
|
|
|
|
union {
|
|
|
|
BitField<0, 24, u32> shader_local_memory_high_size;
|
|
|
|
BitField<0, 24, u32> shader_local_memory_high_size;
|
|
|
|
BitField<24, 8, u32> threads_per_input_primitive;
|
|
|
|
BitField<24, 8, u32> threads_per_input_primitive;
|
|
|
|
} common2{};
|
|
|
|
} common2;
|
|
|
|
|
|
|
|
|
|
|
|
union {
|
|
|
|
union {
|
|
|
|
BitField<0, 24, u32> shader_local_memory_crs_size;
|
|
|
|
BitField<0, 24, u32> shader_local_memory_crs_size;
|
|
|
|
BitField<24, 4, OutputTopology> output_topology;
|
|
|
|
BitField<24, 4, OutputTopology> output_topology;
|
|
|
|
BitField<28, 4, u32> reserved;
|
|
|
|
BitField<28, 4, u32> reserved;
|
|
|
|
} common3{};
|
|
|
|
} common3;
|
|
|
|
|
|
|
|
|
|
|
|
union {
|
|
|
|
union {
|
|
|
|
BitField<0, 12, u32> max_output_vertices;
|
|
|
|
BitField<0, 12, u32> max_output_vertices;
|
|
|
|
BitField<12, 8, u32> store_req_start; // NOTE: not used by geometry shaders.
|
|
|
|
BitField<12, 8, u32> store_req_start; // NOTE: not used by geometry shaders.
|
|
|
|
BitField<20, 4, u32> reserved;
|
|
|
|
BitField<20, 4, u32> reserved;
|
|
|
|
BitField<24, 8, u32> store_req_end; // NOTE: not used by geometry shaders.
|
|
|
|
BitField<24, 8, u32> store_req_end; // NOTE: not used by geometry shaders.
|
|
|
|
} common4{};
|
|
|
|
} common4;
|
|
|
|
|
|
|
|
|
|
|
|
union {
|
|
|
|
union {
|
|
|
|
struct {
|
|
|
|
struct {
|
|
|
@ -145,7 +145,7 @@ struct Header {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} ps;
|
|
|
|
} ps;
|
|
|
|
|
|
|
|
|
|
|
|
std::array<u32, 0xF> raw{};
|
|
|
|
std::array<u32, 0xF> raw;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
u64 GetLocalMemorySize() const {
|
|
|
|
u64 GetLocalMemorySize() const {
|
|
|
@ -153,7 +153,6 @@ struct Header {
|
|
|
|
(common2.shader_local_memory_high_size << 24));
|
|
|
|
(common2.shader_local_memory_high_size << 24));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
static_assert(sizeof(Header) == 0x50, "Incorrect structure size");
|
|
|
|
static_assert(sizeof(Header) == 0x50, "Incorrect structure size");
|
|
|
|
|
|
|
|
|
|
|
|
} // namespace Tegra::Shader
|
|
|
|
} // namespace Tegra::Shader
|
|
|
|