|
|
|
@ -21,43 +21,35 @@ namespace Vulkan { |
|
|
|
using Maxwell = Tegra::Engines::Maxwell3D::Regs; |
|
|
|
|
|
|
|
struct DynamicFeatures { |
|
|
|
union { |
|
|
|
u32 raw0; |
|
|
|
// VK_EXT_extended_dynamic_state (EDS1) - Bit 0 |
|
|
|
BitField<0, 1, u32> has_extended_dynamic_state; |
|
|
|
|
|
|
|
// VK_EXT_extended_dynamic_state2 (EDS2) - Bits 1-3 |
|
|
|
BitField<1, 1, u32> has_extended_dynamic_state_2; // Core EDS2 |
|
|
|
BitField<2, 1, u32> has_extended_dynamic_state_2_logic_op; // LogicOp |
|
|
|
BitField<3, 1, u32> has_extended_dynamic_state_2_patch_control_points; // Tessellation |
|
|
|
|
|
|
|
// VK_EXT_extended_dynamic_state3 (EDS3) - Bits 4-5 |
|
|
|
BitField<4, 1, u32> has_extended_dynamic_state_3_blend; // Blending composite |
|
|
|
BitField<5, 1, u32> has_extended_dynamic_state_3_enables; // Enables composite |
|
|
|
|
|
|
|
// VK_EXT_vertex_input_dynamic_state - Bit 6 |
|
|
|
BitField<6, 1, u32> has_dynamic_vertex_input; |
|
|
|
|
|
|
|
// EDS3 Granular Features - Bits 7-15 |
|
|
|
BitField<7, 1, u32> has_extended_dynamic_state_3_depth_clamp; |
|
|
|
BitField<8, 1, u32> has_extended_dynamic_state_3_logic_op_enable; |
|
|
|
BitField<9, 1, u32> has_extended_dynamic_state_3_tessellation_domain_origin; |
|
|
|
BitField<10, 1, u32> has_extended_dynamic_state_3_polygon_mode; |
|
|
|
BitField<11, 1, u32> has_extended_dynamic_state_3_rasterization_samples; |
|
|
|
BitField<12, 1, u32> has_extended_dynamic_state_3_sample_mask; |
|
|
|
BitField<13, 1, u32> has_extended_dynamic_state_3_alpha_to_coverage_enable; |
|
|
|
BitField<14, 1, u32> has_extended_dynamic_state_3_alpha_to_one_enable; |
|
|
|
BitField<15, 1, u32> has_extended_dynamic_state_3_depth_clip_enable; |
|
|
|
|
|
|
|
// EDS3 Additional Features - Bits 16-22 |
|
|
|
BitField<16, 1, u32> has_extended_dynamic_state_3_depth_clip_negative_one_to_one; |
|
|
|
BitField<17, 1, u32> has_extended_dynamic_state_3_line_rasterization_mode; |
|
|
|
BitField<18, 1, u32> has_extended_dynamic_state_3_line_stipple_enable; |
|
|
|
BitField<19, 1, u32> has_extended_dynamic_state_3_provoking_vertex_mode; |
|
|
|
BitField<20, 1, u32> has_extended_dynamic_state_3_conservative_rasterization_mode; |
|
|
|
BitField<21, 1, u32> has_extended_dynamic_state_3_sample_locations_enable; |
|
|
|
BitField<22, 1, u32> has_extended_dynamic_state_3_rasterization_stream; |
|
|
|
}; |
|
|
|
// VK_EXT_extended_dynamic_state (EDS1) - Bit 0 |
|
|
|
bool has_extended_dynamic_state : 1; |
|
|
|
// VK_EXT_extended_dynamic_state2 (EDS2) - Bits 1-3 |
|
|
|
bool has_extended_dynamic_state_2 : 1; // Core EDS2 |
|
|
|
bool has_extended_dynamic_state_2_logic_op : 1; // LogicOp |
|
|
|
bool has_extended_dynamic_state_2_patch_control_points : 1; // Tessellation |
|
|
|
// VK_EXT_extended_dynamic_state3 (EDS3) - Bits 4-5 |
|
|
|
bool has_extended_dynamic_state_3_blend : 1; // Blending composite |
|
|
|
bool has_extended_dynamic_state_3_enables : 1; // Enables composite |
|
|
|
// VK_EXT_vertex_input_dynamic_state - Bit 6 |
|
|
|
bool has_dynamic_vertex_input : 1; |
|
|
|
// EDS3 Granular Features - Bits 7-15 |
|
|
|
bool has_extended_dynamic_state_3_depth_clamp; |
|
|
|
bool has_extended_dynamic_state_3_logic_op_enable; |
|
|
|
bool has_extended_dynamic_state_3_tessellation_domain_origin; |
|
|
|
bool has_extended_dynamic_state_3_polygon_mode; |
|
|
|
bool has_extended_dynamic_state_3_rasterization_samples; |
|
|
|
bool has_extended_dynamic_state_3_sample_mask; |
|
|
|
bool has_extended_dynamic_state_3_alpha_to_coverage_enable : 1; |
|
|
|
bool has_extended_dynamic_state_3_alpha_to_one_enable : 1; |
|
|
|
bool has_extended_dynamic_state_3_depth_clip_enable : 1; |
|
|
|
// EDS3 Additional Features - Bits 16-22 |
|
|
|
bool has_extended_dynamic_state_3_depth_clip_negative_one_to_one : 1; |
|
|
|
bool has_extended_dynamic_state_3_line_rasterization_mode : 1; |
|
|
|
bool has_extended_dynamic_state_3_line_stipple_enable : 1; |
|
|
|
bool has_extended_dynamic_state_3_provoking_vertex_mode : 1; |
|
|
|
bool has_extended_dynamic_state_3_conservative_rasterization_mode : 1; |
|
|
|
bool has_extended_dynamic_state_3_sample_locations_enable : 1; |
|
|
|
bool has_extended_dynamic_state_3_rasterization_stream : 1; |
|
|
|
}; |
|
|
|
static_assert(std::has_unique_object_representations_v<DynamicFeatures>); |
|
|
|
|
|
|
|
|