diff options
Diffstat (limited to '')
| -rw-r--r-- | src/audio_core/sink_context.h | 6 | ||||
| -rw-r--r-- | src/common/common_funcs.h | 8 | ||||
| -rw-r--r-- | src/core/file_sys/content_archive.cpp | 24 | ||||
| -rw-r--r-- | src/core/hle/ipc.h | 4 | ||||
| -rw-r--r-- | src/core/hle/service/am/applets/error.cpp | 10 | ||||
| -rw-r--r-- | src/video_core/engines/fermi_2d.h | 30 | ||||
| -rw-r--r-- | src/video_core/engines/kepler_compute.h | 16 | ||||
| -rw-r--r-- | src/video_core/engines/kepler_memory.h | 4 | ||||
| -rw-r--r-- | src/video_core/engines/maxwell_3d.h | 150 | ||||
| -rw-r--r-- | src/video_core/engines/shader_header.h | 38 | ||||
| -rw-r--r-- | src/video_core/gpu.h | 8 |
11 files changed, 149 insertions, 149 deletions
diff --git a/src/audio_core/sink_context.h b/src/audio_core/sink_context.h index 05541becb..66ee4e8a0 100644 --- a/src/audio_core/sink_context.h +++ b/src/audio_core/sink_context.h | |||
| @@ -40,17 +40,17 @@ public: | |||
| 40 | SinkSampleFormat sample_format; | 40 | SinkSampleFormat sample_format; |
| 41 | std::array<u8, AudioCommon::MAX_CHANNEL_COUNT> input; | 41 | std::array<u8, AudioCommon::MAX_CHANNEL_COUNT> input; |
| 42 | bool in_use; | 42 | bool in_use; |
| 43 | INSERT_UNION_PADDING_BYTES(5); | 43 | INSERT_PADDING_BYTES_NOINIT(5); |
| 44 | }; | 44 | }; |
| 45 | static_assert(sizeof(CircularBufferIn) == 0x28, | 45 | static_assert(sizeof(CircularBufferIn) == 0x28, |
| 46 | "SinkInfo::CircularBufferIn is in invalid size"); | 46 | "SinkInfo::CircularBufferIn is in invalid size"); |
| 47 | 47 | ||
| 48 | struct DeviceIn { | 48 | struct DeviceIn { |
| 49 | std::array<u8, 255> device_name; | 49 | std::array<u8, 255> device_name; |
| 50 | INSERT_UNION_PADDING_BYTES(1); | 50 | INSERT_PADDING_BYTES_NOINIT(1); |
| 51 | s32_le input_count; | 51 | s32_le input_count; |
| 52 | std::array<u8, AudioCommon::MAX_CHANNEL_COUNT> input; | 52 | std::array<u8, AudioCommon::MAX_CHANNEL_COUNT> input; |
| 53 | INSERT_UNION_PADDING_BYTES(1); | 53 | INSERT_PADDING_BYTES_NOINIT(1); |
| 54 | bool down_matrix_enabled; | 54 | bool down_matrix_enabled; |
| 55 | DownmixCoefficients down_matrix_coef; | 55 | DownmixCoefficients down_matrix_coef; |
| 56 | }; | 56 | }; |
diff --git a/src/common/common_funcs.h b/src/common/common_funcs.h index c90978f9c..75f3027fb 100644 --- a/src/common/common_funcs.h +++ b/src/common/common_funcs.h | |||
| @@ -24,10 +24,10 @@ | |||
| 24 | #define INSERT_PADDING_WORDS(num_words) \ | 24 | #define INSERT_PADDING_WORDS(num_words) \ |
| 25 | std::array<u32, num_words> CONCAT2(pad, __LINE__) {} | 25 | std::array<u32, num_words> CONCAT2(pad, __LINE__) {} |
| 26 | 26 | ||
| 27 | /// These are similar to the INSERT_PADDING_* macros, but are needed for padding unions. This is | 27 | /// These are similar to the INSERT_PADDING_* macros but do not zero-initialize the contents. |
| 28 | /// because unions can only be initialized by one member. | 28 | /// This keeps the structure trivial to construct. |
| 29 | #define INSERT_UNION_PADDING_BYTES(num_bytes) std::array<u8, num_bytes> CONCAT2(pad, __LINE__) | 29 | #define INSERT_PADDING_BYTES_NOINIT(num_bytes) std::array<u8, num_bytes> CONCAT2(pad, __LINE__) |
| 30 | #define INSERT_UNION_PADDING_WORDS(num_words) std::array<u32, num_words> CONCAT2(pad, __LINE__) | 30 | #define INSERT_PADDING_WORDS_NOINIT(num_words) std::array<u32, num_words> CONCAT2(pad, __LINE__) |
| 31 | 31 | ||
| 32 | #ifndef _MSC_VER | 32 | #ifndef _MSC_VER |
| 33 | 33 | ||
diff --git a/src/core/file_sys/content_archive.cpp b/src/core/file_sys/content_archive.cpp index a6c0337fa..d12218fc2 100644 --- a/src/core/file_sys/content_archive.cpp +++ b/src/core/file_sys/content_archive.cpp | |||
| @@ -43,17 +43,17 @@ static_assert(sizeof(IVFCLevel) == 0x18, "IVFCLevel has incorrect size."); | |||
| 43 | struct IVFCHeader { | 43 | struct IVFCHeader { |
| 44 | u32_le magic; | 44 | u32_le magic; |
| 45 | u32_le magic_number; | 45 | u32_le magic_number; |
| 46 | INSERT_UNION_PADDING_BYTES(8); | 46 | INSERT_PADDING_BYTES_NOINIT(8); |
| 47 | std::array<IVFCLevel, 6> levels; | 47 | std::array<IVFCLevel, 6> levels; |
| 48 | INSERT_UNION_PADDING_BYTES(64); | 48 | INSERT_PADDING_BYTES_NOINIT(64); |
| 49 | }; | 49 | }; |
| 50 | static_assert(sizeof(IVFCHeader) == 0xE0, "IVFCHeader has incorrect size."); | 50 | static_assert(sizeof(IVFCHeader) == 0xE0, "IVFCHeader has incorrect size."); |
| 51 | 51 | ||
| 52 | struct NCASectionHeaderBlock { | 52 | struct NCASectionHeaderBlock { |
| 53 | INSERT_UNION_PADDING_BYTES(3); | 53 | INSERT_PADDING_BYTES_NOINIT(3); |
| 54 | NCASectionFilesystemType filesystem_type; | 54 | NCASectionFilesystemType filesystem_type; |
| 55 | NCASectionCryptoType crypto_type; | 55 | NCASectionCryptoType crypto_type; |
| 56 | INSERT_UNION_PADDING_BYTES(3); | 56 | INSERT_PADDING_BYTES_NOINIT(3); |
| 57 | }; | 57 | }; |
| 58 | static_assert(sizeof(NCASectionHeaderBlock) == 0x8, "NCASectionHeaderBlock has incorrect size."); | 58 | static_assert(sizeof(NCASectionHeaderBlock) == 0x8, "NCASectionHeaderBlock has incorrect size."); |
| 59 | 59 | ||
| @@ -61,7 +61,7 @@ struct NCASectionRaw { | |||
| 61 | NCASectionHeaderBlock header; | 61 | NCASectionHeaderBlock header; |
| 62 | std::array<u8, 0x138> block_data; | 62 | std::array<u8, 0x138> block_data; |
| 63 | std::array<u8, 0x8> section_ctr; | 63 | std::array<u8, 0x8> section_ctr; |
| 64 | INSERT_UNION_PADDING_BYTES(0xB8); | 64 | INSERT_PADDING_BYTES_NOINIT(0xB8); |
| 65 | }; | 65 | }; |
| 66 | static_assert(sizeof(NCASectionRaw) == 0x200, "NCASectionRaw has incorrect size."); | 66 | static_assert(sizeof(NCASectionRaw) == 0x200, "NCASectionRaw has incorrect size."); |
| 67 | 67 | ||
| @@ -69,19 +69,19 @@ struct PFS0Superblock { | |||
| 69 | NCASectionHeaderBlock header_block; | 69 | NCASectionHeaderBlock header_block; |
| 70 | std::array<u8, 0x20> hash; | 70 | std::array<u8, 0x20> hash; |
| 71 | u32_le size; | 71 | u32_le size; |
| 72 | INSERT_UNION_PADDING_BYTES(4); | 72 | INSERT_PADDING_BYTES_NOINIT(4); |
| 73 | u64_le hash_table_offset; | 73 | u64_le hash_table_offset; |
| 74 | u64_le hash_table_size; | 74 | u64_le hash_table_size; |
| 75 | u64_le pfs0_header_offset; | 75 | u64_le pfs0_header_offset; |
| 76 | u64_le pfs0_size; | 76 | u64_le pfs0_size; |
| 77 | INSERT_UNION_PADDING_BYTES(0x1B0); | 77 | INSERT_PADDING_BYTES_NOINIT(0x1B0); |
| 78 | }; | 78 | }; |
| 79 | static_assert(sizeof(PFS0Superblock) == 0x200, "PFS0Superblock has incorrect size."); | 79 | static_assert(sizeof(PFS0Superblock) == 0x200, "PFS0Superblock has incorrect size."); |
| 80 | 80 | ||
| 81 | struct RomFSSuperblock { | 81 | struct RomFSSuperblock { |
| 82 | NCASectionHeaderBlock header_block; | 82 | NCASectionHeaderBlock header_block; |
| 83 | IVFCHeader ivfc; | 83 | IVFCHeader ivfc; |
| 84 | INSERT_UNION_PADDING_BYTES(0x118); | 84 | INSERT_PADDING_BYTES_NOINIT(0x118); |
| 85 | }; | 85 | }; |
| 86 | static_assert(sizeof(RomFSSuperblock) == 0x200, "RomFSSuperblock has incorrect size."); | 86 | static_assert(sizeof(RomFSSuperblock) == 0x200, "RomFSSuperblock has incorrect size."); |
| 87 | 87 | ||
| @@ -89,19 +89,19 @@ struct BKTRHeader { | |||
| 89 | u64_le offset; | 89 | u64_le offset; |
| 90 | u64_le size; | 90 | u64_le size; |
| 91 | u32_le magic; | 91 | u32_le magic; |
| 92 | INSERT_UNION_PADDING_BYTES(0x4); | 92 | INSERT_PADDING_BYTES_NOINIT(0x4); |
| 93 | u32_le number_entries; | 93 | u32_le number_entries; |
| 94 | INSERT_UNION_PADDING_BYTES(0x4); | 94 | INSERT_PADDING_BYTES_NOINIT(0x4); |
| 95 | }; | 95 | }; |
| 96 | static_assert(sizeof(BKTRHeader) == 0x20, "BKTRHeader has incorrect size."); | 96 | static_assert(sizeof(BKTRHeader) == 0x20, "BKTRHeader has incorrect size."); |
| 97 | 97 | ||
| 98 | struct BKTRSuperblock { | 98 | struct BKTRSuperblock { |
| 99 | NCASectionHeaderBlock header_block; | 99 | NCASectionHeaderBlock header_block; |
| 100 | IVFCHeader ivfc; | 100 | IVFCHeader ivfc; |
| 101 | INSERT_UNION_PADDING_BYTES(0x18); | 101 | INSERT_PADDING_BYTES_NOINIT(0x18); |
| 102 | BKTRHeader relocation; | 102 | BKTRHeader relocation; |
| 103 | BKTRHeader subsection; | 103 | BKTRHeader subsection; |
| 104 | INSERT_UNION_PADDING_BYTES(0xC0); | 104 | INSERT_PADDING_BYTES_NOINIT(0xC0); |
| 105 | }; | 105 | }; |
| 106 | static_assert(sizeof(BKTRSuperblock) == 0x200, "BKTRSuperblock has incorrect size."); | 106 | static_assert(sizeof(BKTRSuperblock) == 0x200, "BKTRSuperblock has incorrect size."); |
| 107 | 107 | ||
diff --git a/src/core/hle/ipc.h b/src/core/hle/ipc.h index 7ce313190..79bcf5762 100644 --- a/src/core/hle/ipc.h +++ b/src/core/hle/ipc.h | |||
| @@ -160,7 +160,7 @@ struct DomainMessageHeader { | |||
| 160 | // Used when responding to an IPC request, Server -> Client. | 160 | // Used when responding to an IPC request, Server -> Client. |
| 161 | struct { | 161 | struct { |
| 162 | u32_le num_objects; | 162 | u32_le num_objects; |
| 163 | INSERT_UNION_PADDING_WORDS(3); | 163 | INSERT_PADDING_WORDS_NOINIT(3); |
| 164 | }; | 164 | }; |
| 165 | 165 | ||
| 166 | // Used when performing an IPC request, Client -> Server. | 166 | // Used when performing an IPC request, Client -> Server. |
| @@ -171,7 +171,7 @@ struct DomainMessageHeader { | |||
| 171 | BitField<16, 16, u32> size; | 171 | BitField<16, 16, u32> size; |
| 172 | }; | 172 | }; |
| 173 | u32_le object_id; | 173 | u32_le object_id; |
| 174 | INSERT_UNION_PADDING_WORDS(2); | 174 | INSERT_PADDING_WORDS_NOINIT(2); |
| 175 | }; | 175 | }; |
| 176 | 176 | ||
| 177 | std::array<u32, 4> raw{}; | 177 | std::array<u32, 4> raw{}; |
diff --git a/src/core/hle/service/am/applets/error.cpp b/src/core/hle/service/am/applets/error.cpp index d85505082..0c8b632e8 100644 --- a/src/core/hle/service/am/applets/error.cpp +++ b/src/core/hle/service/am/applets/error.cpp | |||
| @@ -20,9 +20,9 @@ namespace Service::AM::Applets { | |||
| 20 | struct ShowError { | 20 | struct ShowError { |
| 21 | u8 mode; | 21 | u8 mode; |
| 22 | bool jump; | 22 | bool jump; |
| 23 | INSERT_UNION_PADDING_BYTES(4); | 23 | INSERT_PADDING_BYTES_NOINIT(4); |
| 24 | bool use_64bit_error_code; | 24 | bool use_64bit_error_code; |
| 25 | INSERT_UNION_PADDING_BYTES(1); | 25 | INSERT_PADDING_BYTES_NOINIT(1); |
| 26 | u64 error_code_64; | 26 | u64 error_code_64; |
| 27 | u32 error_code_32; | 27 | u32 error_code_32; |
| 28 | }; | 28 | }; |
| @@ -32,7 +32,7 @@ static_assert(sizeof(ShowError) == 0x14, "ShowError has incorrect size."); | |||
| 32 | struct ShowErrorRecord { | 32 | struct ShowErrorRecord { |
| 33 | u8 mode; | 33 | u8 mode; |
| 34 | bool jump; | 34 | bool jump; |
| 35 | INSERT_UNION_PADDING_BYTES(6); | 35 | INSERT_PADDING_BYTES_NOINIT(6); |
| 36 | u64 error_code_64; | 36 | u64 error_code_64; |
| 37 | u64 posix_time; | 37 | u64 posix_time; |
| 38 | }; | 38 | }; |
| @@ -41,7 +41,7 @@ static_assert(sizeof(ShowErrorRecord) == 0x18, "ShowErrorRecord has incorrect si | |||
| 41 | struct SystemErrorArg { | 41 | struct SystemErrorArg { |
| 42 | u8 mode; | 42 | u8 mode; |
| 43 | bool jump; | 43 | bool jump; |
| 44 | INSERT_UNION_PADDING_BYTES(6); | 44 | INSERT_PADDING_BYTES_NOINIT(6); |
| 45 | u64 error_code_64; | 45 | u64 error_code_64; |
| 46 | std::array<char, 8> language_code; | 46 | std::array<char, 8> language_code; |
| 47 | std::array<char, 0x800> main_text; | 47 | std::array<char, 0x800> main_text; |
| @@ -52,7 +52,7 @@ static_assert(sizeof(SystemErrorArg) == 0x1018, "SystemErrorArg has incorrect si | |||
| 52 | struct ApplicationErrorArg { | 52 | struct ApplicationErrorArg { |
| 53 | u8 mode; | 53 | u8 mode; |
| 54 | bool jump; | 54 | bool jump; |
| 55 | INSERT_UNION_PADDING_BYTES(6); | 55 | INSERT_PADDING_BYTES_NOINIT(6); |
| 56 | u32 error_code; | 56 | u32 error_code; |
| 57 | std::array<char, 8> language_code; | 57 | std::array<char, 8> language_code; |
| 58 | std::array<char, 0x800> main_text; | 58 | std::array<char, 0x800> main_text; |
diff --git a/src/video_core/engines/fermi_2d.h b/src/video_core/engines/fermi_2d.h index 81522988e..0de3280a2 100644 --- a/src/video_core/engines/fermi_2d.h +++ b/src/video_core/engines/fermi_2d.h | |||
| @@ -171,30 +171,30 @@ public: | |||
| 171 | static constexpr std::size_t NUM_REGS = 0x258; | 171 | static constexpr std::size_t NUM_REGS = 0x258; |
| 172 | struct { | 172 | struct { |
| 173 | u32 object; | 173 | u32 object; |
| 174 | INSERT_UNION_PADDING_WORDS(0x3F); | 174 | INSERT_PADDING_WORDS_NOINIT(0x3F); |
| 175 | u32 no_operation; | 175 | u32 no_operation; |
| 176 | NotifyType notify; | 176 | NotifyType notify; |
| 177 | INSERT_UNION_PADDING_WORDS(0x2); | 177 | INSERT_PADDING_WORDS_NOINIT(0x2); |
| 178 | u32 wait_for_idle; | 178 | u32 wait_for_idle; |
| 179 | INSERT_UNION_PADDING_WORDS(0xB); | 179 | INSERT_PADDING_WORDS_NOINIT(0xB); |
| 180 | u32 pm_trigger; | 180 | u32 pm_trigger; |
| 181 | INSERT_UNION_PADDING_WORDS(0xF); | 181 | INSERT_PADDING_WORDS_NOINIT(0xF); |
| 182 | u32 context_dma_notify; | 182 | u32 context_dma_notify; |
| 183 | u32 dst_context_dma; | 183 | u32 dst_context_dma; |
| 184 | u32 src_context_dma; | 184 | u32 src_context_dma; |
| 185 | u32 semaphore_context_dma; | 185 | u32 semaphore_context_dma; |
| 186 | INSERT_UNION_PADDING_WORDS(0x1C); | 186 | INSERT_PADDING_WORDS_NOINIT(0x1C); |
| 187 | Surface dst; | 187 | Surface dst; |
| 188 | CpuIndexWrap pixels_from_cpu_index_wrap; | 188 | CpuIndexWrap pixels_from_cpu_index_wrap; |
| 189 | u32 kind2d_check_enable; | 189 | u32 kind2d_check_enable; |
| 190 | Surface src; | 190 | Surface src; |
| 191 | SectorPromotion pixels_from_memory_sector_promotion; | 191 | SectorPromotion pixels_from_memory_sector_promotion; |
| 192 | INSERT_UNION_PADDING_WORDS(0x1); | 192 | INSERT_PADDING_WORDS_NOINIT(0x1); |
| 193 | NumTpcs num_tpcs; | 193 | NumTpcs num_tpcs; |
| 194 | u32 render_enable_addr_upper; | 194 | u32 render_enable_addr_upper; |
| 195 | u32 render_enable_addr_lower; | 195 | u32 render_enable_addr_lower; |
| 196 | RenderEnableMode render_enable_mode; | 196 | RenderEnableMode render_enable_mode; |
| 197 | INSERT_UNION_PADDING_WORDS(0x4); | 197 | INSERT_PADDING_WORDS_NOINIT(0x4); |
| 198 | u32 clip_x0; | 198 | u32 clip_x0; |
| 199 | u32 clip_y0; | 199 | u32 clip_y0; |
| 200 | u32 clip_width; | 200 | u32 clip_width; |
| @@ -212,7 +212,7 @@ public: | |||
| 212 | BitField<8, 6, u32> y; | 212 | BitField<8, 6, u32> y; |
| 213 | } pattern_offset; | 213 | } pattern_offset; |
| 214 | BitField<0, 2, PatternSelect> pattern_select; | 214 | BitField<0, 2, PatternSelect> pattern_select; |
| 215 | INSERT_UNION_PADDING_WORDS(0xC); | 215 | INSERT_PADDING_WORDS_NOINIT(0xC); |
| 216 | struct { | 216 | struct { |
| 217 | BitField<0, 3, MonochromePatternColorFormat> color_format; | 217 | BitField<0, 3, MonochromePatternColorFormat> color_format; |
| 218 | BitField<0, 1, MonochromePatternFormat> format; | 218 | BitField<0, 1, MonochromePatternFormat> format; |
| @@ -227,15 +227,15 @@ public: | |||
| 227 | std::array<u32, 0x20> X1R5G5B5; | 227 | std::array<u32, 0x20> X1R5G5B5; |
| 228 | std::array<u32, 0x10> Y8; | 228 | std::array<u32, 0x10> Y8; |
| 229 | } color_pattern; | 229 | } color_pattern; |
| 230 | INSERT_UNION_PADDING_WORDS(0x10); | 230 | INSERT_PADDING_WORDS_NOINIT(0x10); |
| 231 | struct { | 231 | struct { |
| 232 | u32 prim_mode; | 232 | u32 prim_mode; |
| 233 | u32 prim_color_format; | 233 | u32 prim_color_format; |
| 234 | u32 prim_color; | 234 | u32 prim_color; |
| 235 | u32 line_tie_break_bits; | 235 | u32 line_tie_break_bits; |
| 236 | INSERT_UNION_PADDING_WORDS(0x14); | 236 | INSERT_PADDING_WORDS_NOINIT(0x14); |
| 237 | u32 prim_point_xy; | 237 | u32 prim_point_xy; |
| 238 | INSERT_UNION_PADDING_WORDS(0x7); | 238 | INSERT_PADDING_WORDS_NOINIT(0x7); |
| 239 | std::array<Point, 0x40> prim_point; | 239 | std::array<Point, 0x40> prim_point; |
| 240 | } render_solid; | 240 | } render_solid; |
| 241 | struct { | 241 | struct { |
| @@ -247,7 +247,7 @@ public: | |||
| 247 | u32 color0; | 247 | u32 color0; |
| 248 | u32 color1; | 248 | u32 color1; |
| 249 | u32 mono_opacity; | 249 | u32 mono_opacity; |
| 250 | INSERT_UNION_PADDING_WORDS(0x6); | 250 | INSERT_PADDING_WORDS_NOINIT(0x6); |
| 251 | u32 src_width; | 251 | u32 src_width; |
| 252 | u32 src_height; | 252 | u32 src_height; |
| 253 | u32 dx_du_frac; | 253 | u32 dx_du_frac; |
| @@ -260,9 +260,9 @@ public: | |||
| 260 | u32 dst_y0_int; | 260 | u32 dst_y0_int; |
| 261 | u32 data; | 261 | u32 data; |
| 262 | } pixels_from_cpu; | 262 | } pixels_from_cpu; |
| 263 | INSERT_UNION_PADDING_WORDS(0x3); | 263 | INSERT_PADDING_WORDS_NOINIT(0x3); |
| 264 | u32 big_endian_control; | 264 | u32 big_endian_control; |
| 265 | INSERT_UNION_PADDING_WORDS(0x3); | 265 | INSERT_PADDING_WORDS_NOINIT(0x3); |
| 266 | struct { | 266 | struct { |
| 267 | BitField<0, 3, u32> block_shape; | 267 | BitField<0, 3, u32> block_shape; |
| 268 | BitField<0, 5, u32> corral_size; | 268 | BitField<0, 5, u32> corral_size; |
| @@ -271,7 +271,7 @@ public: | |||
| 271 | BitField<0, 1, Origin> origin; | 271 | BitField<0, 1, Origin> origin; |
| 272 | BitField<4, 1, Filter> filter; | 272 | BitField<4, 1, Filter> filter; |
| 273 | } sample_mode; | 273 | } sample_mode; |
| 274 | INSERT_UNION_PADDING_WORDS(0x8); | 274 | INSERT_PADDING_WORDS_NOINIT(0x8); |
| 275 | s32 dst_x0; | 275 | s32 dst_x0; |
| 276 | s32 dst_y0; | 276 | s32 dst_y0; |
| 277 | s32 dst_width; | 277 | s32 dst_width; |
diff --git a/src/video_core/engines/kepler_compute.h b/src/video_core/engines/kepler_compute.h index 51a041202..9f0a7b76d 100644 --- a/src/video_core/engines/kepler_compute.h +++ b/src/video_core/engines/kepler_compute.h | |||
| @@ -55,7 +55,7 @@ public: | |||
| 55 | 55 | ||
| 56 | union { | 56 | union { |
| 57 | struct { | 57 | struct { |
| 58 | INSERT_UNION_PADDING_WORDS(0x60); | 58 | INSERT_PADDING_WORDS_NOINIT(0x60); |
| 59 | 59 | ||
| 60 | Upload::Registers upload; | 60 | Upload::Registers upload; |
| 61 | 61 | ||
| @@ -67,7 +67,7 @@ public: | |||
| 67 | 67 | ||
| 68 | u32 data_upload; | 68 | u32 data_upload; |
| 69 | 69 | ||
| 70 | INSERT_UNION_PADDING_WORDS(0x3F); | 70 | INSERT_PADDING_WORDS_NOINIT(0x3F); |
| 71 | 71 | ||
| 72 | struct { | 72 | struct { |
| 73 | u32 address; | 73 | u32 address; |
| @@ -76,11 +76,11 @@ public: | |||
| 76 | } | 76 | } |
| 77 | } launch_desc_loc; | 77 | } launch_desc_loc; |
| 78 | 78 | ||
| 79 | INSERT_UNION_PADDING_WORDS(0x1); | 79 | INSERT_PADDING_WORDS_NOINIT(0x1); |
| 80 | 80 | ||
| 81 | u32 launch; | 81 | u32 launch; |
| 82 | 82 | ||
| 83 | INSERT_UNION_PADDING_WORDS(0x4A7); | 83 | INSERT_PADDING_WORDS_NOINIT(0x4A7); |
| 84 | 84 | ||
| 85 | struct { | 85 | struct { |
| 86 | u32 address_high; | 86 | u32 address_high; |
| @@ -92,7 +92,7 @@ public: | |||
| 92 | } | 92 | } |
| 93 | } tsc; | 93 | } tsc; |
| 94 | 94 | ||
| 95 | INSERT_UNION_PADDING_WORDS(0x3); | 95 | INSERT_PADDING_WORDS_NOINIT(0x3); |
| 96 | 96 | ||
| 97 | struct { | 97 | struct { |
| 98 | u32 address_high; | 98 | u32 address_high; |
| @@ -104,7 +104,7 @@ public: | |||
| 104 | } | 104 | } |
| 105 | } tic; | 105 | } tic; |
| 106 | 106 | ||
| 107 | INSERT_UNION_PADDING_WORDS(0x22); | 107 | INSERT_PADDING_WORDS_NOINIT(0x22); |
| 108 | 108 | ||
| 109 | struct { | 109 | struct { |
| 110 | u32 address_high; | 110 | u32 address_high; |
| @@ -115,11 +115,11 @@ public: | |||
| 115 | } | 115 | } |
| 116 | } code_loc; | 116 | } code_loc; |
| 117 | 117 | ||
| 118 | INSERT_UNION_PADDING_WORDS(0x3FE); | 118 | INSERT_PADDING_WORDS_NOINIT(0x3FE); |
| 119 | 119 | ||
| 120 | u32 tex_cb_index; | 120 | u32 tex_cb_index; |
| 121 | 121 | ||
| 122 | INSERT_UNION_PADDING_WORDS(0x374); | 122 | INSERT_PADDING_WORDS_NOINIT(0x374); |
| 123 | }; | 123 | }; |
| 124 | std::array<u32, NUM_REGS> reg_array; | 124 | std::array<u32, NUM_REGS> reg_array; |
| 125 | }; | 125 | }; |
diff --git a/src/video_core/engines/kepler_memory.h b/src/video_core/engines/kepler_memory.h index 62483589e..19808a5c6 100644 --- a/src/video_core/engines/kepler_memory.h +++ b/src/video_core/engines/kepler_memory.h | |||
| @@ -50,7 +50,7 @@ public: | |||
| 50 | 50 | ||
| 51 | union { | 51 | union { |
| 52 | struct { | 52 | struct { |
| 53 | INSERT_UNION_PADDING_WORDS(0x60); | 53 | INSERT_PADDING_WORDS_NOINIT(0x60); |
| 54 | 54 | ||
| 55 | Upload::Registers upload; | 55 | Upload::Registers upload; |
| 56 | 56 | ||
| @@ -62,7 +62,7 @@ public: | |||
| 62 | 62 | ||
| 63 | u32 data; | 63 | u32 data; |
| 64 | 64 | ||
| 65 | INSERT_UNION_PADDING_WORDS(0x11); | 65 | INSERT_PADDING_WORDS_NOINIT(0x11); |
| 66 | }; | 66 | }; |
| 67 | std::array<u32, NUM_REGS> reg_array; | 67 | std::array<u32, NUM_REGS> reg_array; |
| 68 | }; | 68 | }; |
diff --git a/src/video_core/engines/maxwell_3d.h b/src/video_core/engines/maxwell_3d.h index bf9e07c9b..326b32228 100644 --- a/src/video_core/engines/maxwell_3d.h +++ b/src/video_core/engines/maxwell_3d.h | |||
| @@ -536,7 +536,7 @@ public: | |||
| 536 | Equation equation_a; | 536 | Equation equation_a; |
| 537 | Factor factor_source_a; | 537 | Factor factor_source_a; |
| 538 | Factor factor_dest_a; | 538 | Factor factor_dest_a; |
| 539 | INSERT_UNION_PADDING_WORDS(1); | 539 | INSERT_PADDING_WORDS_NOINIT(1); |
| 540 | }; | 540 | }; |
| 541 | 541 | ||
| 542 | enum class TessellationPrimitive : u32 { | 542 | enum class TessellationPrimitive : u32 { |
| @@ -608,7 +608,7 @@ public: | |||
| 608 | }; | 608 | }; |
| 609 | u32 layer_stride; | 609 | u32 layer_stride; |
| 610 | u32 base_layer; | 610 | u32 base_layer; |
| 611 | INSERT_UNION_PADDING_WORDS(7); | 611 | INSERT_PADDING_WORDS_NOINIT(7); |
| 612 | 612 | ||
| 613 | GPUVAddr Address() const { | 613 | GPUVAddr Address() const { |
| 614 | return static_cast<GPUVAddr>((static_cast<GPUVAddr>(address_high) << 32) | | 614 | return static_cast<GPUVAddr>((static_cast<GPUVAddr>(address_high) << 32) | |
| @@ -640,7 +640,7 @@ public: | |||
| 640 | BitField<8, 3, ViewportSwizzle> z; | 640 | BitField<8, 3, ViewportSwizzle> z; |
| 641 | BitField<12, 3, ViewportSwizzle> w; | 641 | BitField<12, 3, ViewportSwizzle> w; |
| 642 | } swizzle; | 642 | } swizzle; |
| 643 | INSERT_UNION_PADDING_WORDS(1); | 643 | INSERT_PADDING_WORDS_NOINIT(1); |
| 644 | 644 | ||
| 645 | Common::Rectangle<f32> GetRect() const { | 645 | Common::Rectangle<f32> GetRect() const { |
| 646 | return { | 646 | return { |
| @@ -700,7 +700,7 @@ public: | |||
| 700 | u32 address_low; | 700 | u32 address_low; |
| 701 | s32 buffer_size; | 701 | s32 buffer_size; |
| 702 | s32 buffer_offset; | 702 | s32 buffer_offset; |
| 703 | INSERT_UNION_PADDING_WORDS(3); | 703 | INSERT_PADDING_WORDS_NOINIT(3); |
| 704 | 704 | ||
| 705 | GPUVAddr Address() const { | 705 | GPUVAddr Address() const { |
| 706 | return static_cast<GPUVAddr>((static_cast<GPUVAddr>(address_high) << 32) | | 706 | return static_cast<GPUVAddr>((static_cast<GPUVAddr>(address_high) << 32) | |
| @@ -713,7 +713,7 @@ public: | |||
| 713 | u32 stream; | 713 | u32 stream; |
| 714 | u32 varying_count; | 714 | u32 varying_count; |
| 715 | u32 stride; | 715 | u32 stride; |
| 716 | INSERT_UNION_PADDING_WORDS(1); | 716 | INSERT_PADDING_WORDS_NOINIT(1); |
| 717 | }; | 717 | }; |
| 718 | static_assert(sizeof(TransformFeedbackLayout) == 16); | 718 | static_assert(sizeof(TransformFeedbackLayout) == 16); |
| 719 | 719 | ||
| @@ -731,7 +731,7 @@ public: | |||
| 731 | 731 | ||
| 732 | union { | 732 | union { |
| 733 | struct { | 733 | struct { |
| 734 | INSERT_UNION_PADDING_WORDS(0x44); | 734 | INSERT_PADDING_WORDS_NOINIT(0x44); |
| 735 | 735 | ||
| 736 | u32 wait_for_idle; | 736 | u32 wait_for_idle; |
| 737 | 737 | ||
| @@ -744,7 +744,7 @@ public: | |||
| 744 | 744 | ||
| 745 | ShadowRamControl shadow_ram_control; | 745 | ShadowRamControl shadow_ram_control; |
| 746 | 746 | ||
| 747 | INSERT_UNION_PADDING_WORDS(0x16); | 747 | INSERT_PADDING_WORDS_NOINIT(0x16); |
| 748 | 748 | ||
| 749 | Upload::Registers upload; | 749 | Upload::Registers upload; |
| 750 | struct { | 750 | struct { |
| @@ -755,11 +755,11 @@ public: | |||
| 755 | 755 | ||
| 756 | u32 data_upload; | 756 | u32 data_upload; |
| 757 | 757 | ||
| 758 | INSERT_UNION_PADDING_WORDS(0x16); | 758 | INSERT_PADDING_WORDS_NOINIT(0x16); |
| 759 | 759 | ||
| 760 | u32 force_early_fragment_tests; | 760 | u32 force_early_fragment_tests; |
| 761 | 761 | ||
| 762 | INSERT_UNION_PADDING_WORDS(0x2D); | 762 | INSERT_PADDING_WORDS_NOINIT(0x2D); |
| 763 | 763 | ||
| 764 | struct { | 764 | struct { |
| 765 | union { | 765 | union { |
| @@ -769,7 +769,7 @@ public: | |||
| 769 | }; | 769 | }; |
| 770 | } sync_info; | 770 | } sync_info; |
| 771 | 771 | ||
| 772 | INSERT_UNION_PADDING_WORDS(0x15); | 772 | INSERT_PADDING_WORDS_NOINIT(0x15); |
| 773 | 773 | ||
| 774 | union { | 774 | union { |
| 775 | BitField<0, 2, TessellationPrimitive> prim; | 775 | BitField<0, 2, TessellationPrimitive> prim; |
| @@ -781,21 +781,21 @@ public: | |||
| 781 | std::array<f32, 4> tess_level_outer; | 781 | std::array<f32, 4> tess_level_outer; |
| 782 | std::array<f32, 2> tess_level_inner; | 782 | std::array<f32, 2> tess_level_inner; |
| 783 | 783 | ||
| 784 | INSERT_UNION_PADDING_WORDS(0x10); | 784 | INSERT_PADDING_WORDS_NOINIT(0x10); |
| 785 | 785 | ||
| 786 | u32 rasterize_enable; | 786 | u32 rasterize_enable; |
| 787 | 787 | ||
| 788 | std::array<TransformFeedbackBinding, NumTransformFeedbackBuffers> tfb_bindings; | 788 | std::array<TransformFeedbackBinding, NumTransformFeedbackBuffers> tfb_bindings; |
| 789 | 789 | ||
| 790 | INSERT_UNION_PADDING_WORDS(0xC0); | 790 | INSERT_PADDING_WORDS_NOINIT(0xC0); |
| 791 | 791 | ||
| 792 | std::array<TransformFeedbackLayout, NumTransformFeedbackBuffers> tfb_layouts; | 792 | std::array<TransformFeedbackLayout, NumTransformFeedbackBuffers> tfb_layouts; |
| 793 | 793 | ||
| 794 | INSERT_UNION_PADDING_WORDS(0x1); | 794 | INSERT_PADDING_WORDS_NOINIT(0x1); |
| 795 | 795 | ||
| 796 | u32 tfb_enabled; | 796 | u32 tfb_enabled; |
| 797 | 797 | ||
| 798 | INSERT_UNION_PADDING_WORDS(0x2E); | 798 | INSERT_PADDING_WORDS_NOINIT(0x2E); |
| 799 | 799 | ||
| 800 | std::array<RenderTargetConfig, NumRenderTargets> rt; | 800 | std::array<RenderTargetConfig, NumRenderTargets> rt; |
| 801 | 801 | ||
| @@ -803,7 +803,7 @@ public: | |||
| 803 | 803 | ||
| 804 | std::array<ViewPort, NumViewports> viewports; | 804 | std::array<ViewPort, NumViewports> viewports; |
| 805 | 805 | ||
| 806 | INSERT_UNION_PADDING_WORDS(0x1D); | 806 | INSERT_PADDING_WORDS_NOINIT(0x1D); |
| 807 | 807 | ||
| 808 | struct { | 808 | struct { |
| 809 | u32 first; | 809 | u32 first; |
| @@ -815,16 +815,16 @@ public: | |||
| 815 | float clear_color[4]; | 815 | float clear_color[4]; |
| 816 | float clear_depth; | 816 | float clear_depth; |
| 817 | 817 | ||
| 818 | INSERT_UNION_PADDING_WORDS(0x3); | 818 | INSERT_PADDING_WORDS_NOINIT(0x3); |
| 819 | 819 | ||
| 820 | s32 clear_stencil; | 820 | s32 clear_stencil; |
| 821 | 821 | ||
| 822 | INSERT_UNION_PADDING_WORDS(0x2); | 822 | INSERT_PADDING_WORDS_NOINIT(0x2); |
| 823 | 823 | ||
| 824 | PolygonMode polygon_mode_front; | 824 | PolygonMode polygon_mode_front; |
| 825 | PolygonMode polygon_mode_back; | 825 | PolygonMode polygon_mode_back; |
| 826 | 826 | ||
| 827 | INSERT_UNION_PADDING_WORDS(0x3); | 827 | INSERT_PADDING_WORDS_NOINIT(0x3); |
| 828 | 828 | ||
| 829 | u32 polygon_offset_point_enable; | 829 | u32 polygon_offset_point_enable; |
| 830 | u32 polygon_offset_line_enable; | 830 | u32 polygon_offset_line_enable; |
| @@ -832,47 +832,47 @@ public: | |||
| 832 | 832 | ||
| 833 | u32 patch_vertices; | 833 | u32 patch_vertices; |
| 834 | 834 | ||
| 835 | INSERT_UNION_PADDING_WORDS(0x4); | 835 | INSERT_PADDING_WORDS_NOINIT(0x4); |
| 836 | 836 | ||
| 837 | u32 fragment_barrier; | 837 | u32 fragment_barrier; |
| 838 | 838 | ||
| 839 | INSERT_UNION_PADDING_WORDS(0x7); | 839 | INSERT_PADDING_WORDS_NOINIT(0x7); |
| 840 | 840 | ||
| 841 | std::array<ScissorTest, NumViewports> scissor_test; | 841 | std::array<ScissorTest, NumViewports> scissor_test; |
| 842 | 842 | ||
| 843 | INSERT_UNION_PADDING_WORDS(0x15); | 843 | INSERT_PADDING_WORDS_NOINIT(0x15); |
| 844 | 844 | ||
| 845 | s32 stencil_back_func_ref; | 845 | s32 stencil_back_func_ref; |
| 846 | u32 stencil_back_mask; | 846 | u32 stencil_back_mask; |
| 847 | u32 stencil_back_func_mask; | 847 | u32 stencil_back_func_mask; |
| 848 | 848 | ||
| 849 | INSERT_UNION_PADDING_WORDS(0x5); | 849 | INSERT_PADDING_WORDS_NOINIT(0x5); |
| 850 | 850 | ||
| 851 | u32 invalidate_texture_data_cache; | 851 | u32 invalidate_texture_data_cache; |
| 852 | 852 | ||
| 853 | INSERT_UNION_PADDING_WORDS(0x1); | 853 | INSERT_PADDING_WORDS_NOINIT(0x1); |
| 854 | 854 | ||
| 855 | u32 tiled_cache_barrier; | 855 | u32 tiled_cache_barrier; |
| 856 | 856 | ||
| 857 | INSERT_UNION_PADDING_WORDS(0x4); | 857 | INSERT_PADDING_WORDS_NOINIT(0x4); |
| 858 | 858 | ||
| 859 | u32 color_mask_common; | 859 | u32 color_mask_common; |
| 860 | 860 | ||
| 861 | INSERT_UNION_PADDING_WORDS(0x2); | 861 | INSERT_PADDING_WORDS_NOINIT(0x2); |
| 862 | 862 | ||
| 863 | f32 depth_bounds[2]; | 863 | f32 depth_bounds[2]; |
| 864 | 864 | ||
| 865 | INSERT_UNION_PADDING_WORDS(0x2); | 865 | INSERT_PADDING_WORDS_NOINIT(0x2); |
| 866 | 866 | ||
| 867 | u32 rt_separate_frag_data; | 867 | u32 rt_separate_frag_data; |
| 868 | 868 | ||
| 869 | INSERT_UNION_PADDING_WORDS(0x1); | 869 | INSERT_PADDING_WORDS_NOINIT(0x1); |
| 870 | 870 | ||
| 871 | u32 multisample_raster_enable; | 871 | u32 multisample_raster_enable; |
| 872 | u32 multisample_raster_samples; | 872 | u32 multisample_raster_samples; |
| 873 | std::array<u32, 4> multisample_sample_mask; | 873 | std::array<u32, 4> multisample_sample_mask; |
| 874 | 874 | ||
| 875 | INSERT_UNION_PADDING_WORDS(0x5); | 875 | INSERT_PADDING_WORDS_NOINIT(0x5); |
| 876 | 876 | ||
| 877 | struct { | 877 | struct { |
| 878 | u32 address_high; | 878 | u32 address_high; |
| @@ -898,7 +898,7 @@ public: | |||
| 898 | }; | 898 | }; |
| 899 | } render_area; | 899 | } render_area; |
| 900 | 900 | ||
| 901 | INSERT_UNION_PADDING_WORDS(0x3F); | 901 | INSERT_PADDING_WORDS_NOINIT(0x3F); |
| 902 | 902 | ||
| 903 | union { | 903 | union { |
| 904 | BitField<0, 4, u32> stencil; | 904 | BitField<0, 4, u32> stencil; |
| @@ -907,24 +907,24 @@ public: | |||
| 907 | BitField<12, 4, u32> viewport; | 907 | BitField<12, 4, u32> viewport; |
| 908 | } clear_flags; | 908 | } clear_flags; |
| 909 | 909 | ||
| 910 | INSERT_UNION_PADDING_WORDS(0x10); | 910 | INSERT_PADDING_WORDS_NOINIT(0x10); |
| 911 | 911 | ||
| 912 | u32 fill_rectangle; | 912 | u32 fill_rectangle; |
| 913 | 913 | ||
| 914 | INSERT_UNION_PADDING_WORDS(0x8); | 914 | INSERT_PADDING_WORDS_NOINIT(0x8); |
| 915 | 915 | ||
| 916 | std::array<VertexAttribute, NumVertexAttributes> vertex_attrib_format; | 916 | std::array<VertexAttribute, NumVertexAttributes> vertex_attrib_format; |
| 917 | 917 | ||
| 918 | std::array<MsaaSampleLocation, 4> multisample_sample_locations; | 918 | std::array<MsaaSampleLocation, 4> multisample_sample_locations; |
| 919 | 919 | ||
| 920 | INSERT_UNION_PADDING_WORDS(0x2); | 920 | INSERT_PADDING_WORDS_NOINIT(0x2); |
| 921 | 921 | ||
| 922 | union { | 922 | union { |
| 923 | BitField<0, 1, u32> enable; | 923 | BitField<0, 1, u32> enable; |
| 924 | BitField<4, 3, u32> target; | 924 | BitField<4, 3, u32> target; |
| 925 | } multisample_coverage_to_color; | 925 | } multisample_coverage_to_color; |
| 926 | 926 | ||
| 927 | INSERT_UNION_PADDING_WORDS(0x8); | 927 | INSERT_PADDING_WORDS_NOINIT(0x8); |
| 928 | 928 | ||
| 929 | struct { | 929 | struct { |
| 930 | union { | 930 | union { |
| @@ -947,7 +947,7 @@ public: | |||
| 947 | } | 947 | } |
| 948 | } rt_control; | 948 | } rt_control; |
| 949 | 949 | ||
| 950 | INSERT_UNION_PADDING_WORDS(0x2); | 950 | INSERT_PADDING_WORDS_NOINIT(0x2); |
| 951 | 951 | ||
| 952 | u32 zeta_width; | 952 | u32 zeta_width; |
| 953 | u32 zeta_height; | 953 | u32 zeta_height; |
| @@ -958,11 +958,11 @@ public: | |||
| 958 | 958 | ||
| 959 | SamplerIndex sampler_index; | 959 | SamplerIndex sampler_index; |
| 960 | 960 | ||
| 961 | INSERT_UNION_PADDING_WORDS(0x25); | 961 | INSERT_PADDING_WORDS_NOINIT(0x25); |
| 962 | 962 | ||
| 963 | u32 depth_test_enable; | 963 | u32 depth_test_enable; |
| 964 | 964 | ||
| 965 | INSERT_UNION_PADDING_WORDS(0x5); | 965 | INSERT_PADDING_WORDS_NOINIT(0x5); |
| 966 | 966 | ||
| 967 | u32 independent_blend_enable; | 967 | u32 independent_blend_enable; |
| 968 | 968 | ||
| @@ -970,7 +970,7 @@ public: | |||
| 970 | 970 | ||
| 971 | u32 alpha_test_enabled; | 971 | u32 alpha_test_enabled; |
| 972 | 972 | ||
| 973 | INSERT_UNION_PADDING_WORDS(0x6); | 973 | INSERT_PADDING_WORDS_NOINIT(0x6); |
| 974 | 974 | ||
| 975 | u32 d3d_cull_mode; | 975 | u32 d3d_cull_mode; |
| 976 | 976 | ||
| @@ -985,7 +985,7 @@ public: | |||
| 985 | float a; | 985 | float a; |
| 986 | } blend_color; | 986 | } blend_color; |
| 987 | 987 | ||
| 988 | INSERT_UNION_PADDING_WORDS(0x4); | 988 | INSERT_PADDING_WORDS_NOINIT(0x4); |
| 989 | 989 | ||
| 990 | struct { | 990 | struct { |
| 991 | u32 separate_alpha; | 991 | u32 separate_alpha; |
| @@ -994,7 +994,7 @@ public: | |||
| 994 | Blend::Factor factor_dest_rgb; | 994 | Blend::Factor factor_dest_rgb; |
| 995 | Blend::Equation equation_a; | 995 | Blend::Equation equation_a; |
| 996 | Blend::Factor factor_source_a; | 996 | Blend::Factor factor_source_a; |
| 997 | INSERT_UNION_PADDING_WORDS(1); | 997 | INSERT_PADDING_WORDS_NOINIT(1); |
| 998 | Blend::Factor factor_dest_a; | 998 | Blend::Factor factor_dest_a; |
| 999 | 999 | ||
| 1000 | u32 enable_common; | 1000 | u32 enable_common; |
| @@ -1010,7 +1010,7 @@ public: | |||
| 1010 | u32 stencil_front_func_mask; | 1010 | u32 stencil_front_func_mask; |
| 1011 | u32 stencil_front_mask; | 1011 | u32 stencil_front_mask; |
| 1012 | 1012 | ||
| 1013 | INSERT_UNION_PADDING_WORDS(0x2); | 1013 | INSERT_PADDING_WORDS_NOINIT(0x2); |
| 1014 | 1014 | ||
| 1015 | u32 frag_color_clamp; | 1015 | u32 frag_color_clamp; |
| 1016 | 1016 | ||
| @@ -1022,17 +1022,17 @@ public: | |||
| 1022 | float line_width_smooth; | 1022 | float line_width_smooth; |
| 1023 | float line_width_aliased; | 1023 | float line_width_aliased; |
| 1024 | 1024 | ||
| 1025 | INSERT_UNION_PADDING_WORDS(0x1B); | 1025 | INSERT_PADDING_WORDS_NOINIT(0x1B); |
| 1026 | 1026 | ||
| 1027 | u32 invalidate_sampler_cache_no_wfi; | 1027 | u32 invalidate_sampler_cache_no_wfi; |
| 1028 | u32 invalidate_texture_header_cache_no_wfi; | 1028 | u32 invalidate_texture_header_cache_no_wfi; |
| 1029 | 1029 | ||
| 1030 | INSERT_UNION_PADDING_WORDS(0x2); | 1030 | INSERT_PADDING_WORDS_NOINIT(0x2); |
| 1031 | 1031 | ||
| 1032 | u32 vb_element_base; | 1032 | u32 vb_element_base; |
| 1033 | u32 vb_base_instance; | 1033 | u32 vb_base_instance; |
| 1034 | 1034 | ||
| 1035 | INSERT_UNION_PADDING_WORDS(0x35); | 1035 | INSERT_PADDING_WORDS_NOINIT(0x35); |
| 1036 | 1036 | ||
| 1037 | u32 clip_distance_enabled; | 1037 | u32 clip_distance_enabled; |
| 1038 | 1038 | ||
| @@ -1040,11 +1040,11 @@ public: | |||
| 1040 | 1040 | ||
| 1041 | float point_size; | 1041 | float point_size; |
| 1042 | 1042 | ||
| 1043 | INSERT_UNION_PADDING_WORDS(0x1); | 1043 | INSERT_PADDING_WORDS_NOINIT(0x1); |
| 1044 | 1044 | ||
| 1045 | u32 point_sprite_enable; | 1045 | u32 point_sprite_enable; |
| 1046 | 1046 | ||
| 1047 | INSERT_UNION_PADDING_WORDS(0x3); | 1047 | INSERT_PADDING_WORDS_NOINIT(0x3); |
| 1048 | 1048 | ||
| 1049 | CounterReset counter_reset; | 1049 | CounterReset counter_reset; |
| 1050 | 1050 | ||
| @@ -1057,7 +1057,7 @@ public: | |||
| 1057 | BitField<4, 1, u32> alpha_to_one; | 1057 | BitField<4, 1, u32> alpha_to_one; |
| 1058 | } multisample_control; | 1058 | } multisample_control; |
| 1059 | 1059 | ||
| 1060 | INSERT_UNION_PADDING_WORDS(0x4); | 1060 | INSERT_PADDING_WORDS_NOINIT(0x4); |
| 1061 | 1061 | ||
| 1062 | struct { | 1062 | struct { |
| 1063 | u32 address_high; | 1063 | u32 address_high; |
| @@ -1081,7 +1081,7 @@ public: | |||
| 1081 | } | 1081 | } |
| 1082 | } tsc; | 1082 | } tsc; |
| 1083 | 1083 | ||
| 1084 | INSERT_UNION_PADDING_WORDS(0x1); | 1084 | INSERT_PADDING_WORDS_NOINIT(0x1); |
| 1085 | 1085 | ||
| 1086 | float polygon_offset_factor; | 1086 | float polygon_offset_factor; |
| 1087 | 1087 | ||
| @@ -1098,7 +1098,7 @@ public: | |||
| 1098 | } | 1098 | } |
| 1099 | } tic; | 1099 | } tic; |
| 1100 | 1100 | ||
| 1101 | INSERT_UNION_PADDING_WORDS(0x5); | 1101 | INSERT_PADDING_WORDS_NOINIT(0x5); |
| 1102 | 1102 | ||
| 1103 | u32 stencil_two_side_enable; | 1103 | u32 stencil_two_side_enable; |
| 1104 | StencilOp stencil_back_op_fail; | 1104 | StencilOp stencil_back_op_fail; |
| @@ -1106,17 +1106,17 @@ public: | |||
| 1106 | StencilOp stencil_back_op_zpass; | 1106 | StencilOp stencil_back_op_zpass; |
| 1107 | ComparisonOp stencil_back_func_func; | 1107 | ComparisonOp stencil_back_func_func; |
| 1108 | 1108 | ||
| 1109 | INSERT_UNION_PADDING_WORDS(0x4); | 1109 | INSERT_PADDING_WORDS_NOINIT(0x4); |
| 1110 | 1110 | ||
| 1111 | u32 framebuffer_srgb; | 1111 | u32 framebuffer_srgb; |
| 1112 | 1112 | ||
| 1113 | float polygon_offset_units; | 1113 | float polygon_offset_units; |
| 1114 | 1114 | ||
| 1115 | INSERT_UNION_PADDING_WORDS(0x4); | 1115 | INSERT_PADDING_WORDS_NOINIT(0x4); |
| 1116 | 1116 | ||
| 1117 | Tegra::Texture::MsaaMode multisample_mode; | 1117 | Tegra::Texture::MsaaMode multisample_mode; |
| 1118 | 1118 | ||
| 1119 | INSERT_UNION_PADDING_WORDS(0xC); | 1119 | INSERT_PADDING_WORDS_NOINIT(0xC); |
| 1120 | 1120 | ||
| 1121 | union { | 1121 | union { |
| 1122 | BitField<2, 1, u32> coord_origin; | 1122 | BitField<2, 1, u32> coord_origin; |
| @@ -1132,7 +1132,7 @@ public: | |||
| 1132 | (static_cast<GPUVAddr>(code_address_high) << 32) | code_address_low); | 1132 | (static_cast<GPUVAddr>(code_address_high) << 32) | code_address_low); |
| 1133 | } | 1133 | } |
| 1134 | } code_address; | 1134 | } code_address; |
| 1135 | INSERT_UNION_PADDING_WORDS(1); | 1135 | INSERT_PADDING_WORDS_NOINIT(1); |
| 1136 | 1136 | ||
| 1137 | struct { | 1137 | struct { |
| 1138 | u32 vertex_end_gl; | 1138 | u32 vertex_end_gl; |
| @@ -1144,14 +1144,14 @@ public: | |||
| 1144 | }; | 1144 | }; |
| 1145 | } draw; | 1145 | } draw; |
| 1146 | 1146 | ||
| 1147 | INSERT_UNION_PADDING_WORDS(0xA); | 1147 | INSERT_PADDING_WORDS_NOINIT(0xA); |
| 1148 | 1148 | ||
| 1149 | struct { | 1149 | struct { |
| 1150 | u32 enabled; | 1150 | u32 enabled; |
| 1151 | u32 index; | 1151 | u32 index; |
| 1152 | } primitive_restart; | 1152 | } primitive_restart; |
| 1153 | 1153 | ||
| 1154 | INSERT_UNION_PADDING_WORDS(0x5F); | 1154 | INSERT_PADDING_WORDS_NOINIT(0x5F); |
| 1155 | 1155 | ||
| 1156 | struct { | 1156 | struct { |
| 1157 | u32 start_addr_high; | 1157 | u32 start_addr_high; |
| @@ -1192,9 +1192,9 @@ public: | |||
| 1192 | } | 1192 | } |
| 1193 | } index_array; | 1193 | } index_array; |
| 1194 | 1194 | ||
| 1195 | INSERT_UNION_PADDING_WORDS(0x7); | 1195 | INSERT_PADDING_WORDS_NOINIT(0x7); |
| 1196 | 1196 | ||
| 1197 | INSERT_UNION_PADDING_WORDS(0x1F); | 1197 | INSERT_PADDING_WORDS_NOINIT(0x1F); |
| 1198 | 1198 | ||
| 1199 | float polygon_offset_clamp; | 1199 | float polygon_offset_clamp; |
| 1200 | 1200 | ||
| @@ -1208,14 +1208,14 @@ public: | |||
| 1208 | } | 1208 | } |
| 1209 | } instanced_arrays; | 1209 | } instanced_arrays; |
| 1210 | 1210 | ||
| 1211 | INSERT_UNION_PADDING_WORDS(0x4); | 1211 | INSERT_PADDING_WORDS_NOINIT(0x4); |
| 1212 | 1212 | ||
| 1213 | union { | 1213 | union { |
| 1214 | BitField<0, 1, u32> enable; | 1214 | BitField<0, 1, u32> enable; |
| 1215 | BitField<4, 8, u32> unk4; | 1215 | BitField<4, 8, u32> unk4; |
| 1216 | } vp_point_size; | 1216 | } vp_point_size; |
| 1217 | 1217 | ||
| 1218 | INSERT_UNION_PADDING_WORDS(1); | 1218 | INSERT_PADDING_WORDS_NOINIT(1); |
| 1219 | 1219 | ||
| 1220 | u32 cull_test_enabled; | 1220 | u32 cull_test_enabled; |
| 1221 | FrontFace front_face; | 1221 | FrontFace front_face; |
| @@ -1223,11 +1223,11 @@ public: | |||
| 1223 | 1223 | ||
| 1224 | u32 pixel_center_integer; | 1224 | u32 pixel_center_integer; |
| 1225 | 1225 | ||
| 1226 | INSERT_UNION_PADDING_WORDS(0x1); | 1226 | INSERT_PADDING_WORDS_NOINIT(0x1); |
| 1227 | 1227 | ||
| 1228 | u32 viewport_transform_enabled; | 1228 | u32 viewport_transform_enabled; |
| 1229 | 1229 | ||
| 1230 | INSERT_UNION_PADDING_WORDS(0x3); | 1230 | INSERT_PADDING_WORDS_NOINIT(0x3); |
| 1231 | 1231 | ||
| 1232 | union { | 1232 | union { |
| 1233 | BitField<0, 1, u32> depth_range_0_1; | 1233 | BitField<0, 1, u32> depth_range_0_1; |
| @@ -1236,18 +1236,18 @@ public: | |||
| 1236 | BitField<11, 1, u32> depth_clamp_disabled; | 1236 | BitField<11, 1, u32> depth_clamp_disabled; |
| 1237 | } view_volume_clip_control; | 1237 | } view_volume_clip_control; |
| 1238 | 1238 | ||
| 1239 | INSERT_UNION_PADDING_WORDS(0x1F); | 1239 | INSERT_PADDING_WORDS_NOINIT(0x1F); |
| 1240 | 1240 | ||
| 1241 | u32 depth_bounds_enable; | 1241 | u32 depth_bounds_enable; |
| 1242 | 1242 | ||
| 1243 | INSERT_UNION_PADDING_WORDS(1); | 1243 | INSERT_PADDING_WORDS_NOINIT(1); |
| 1244 | 1244 | ||
| 1245 | struct { | 1245 | struct { |
| 1246 | u32 enable; | 1246 | u32 enable; |
| 1247 | LogicOperation operation; | 1247 | LogicOperation operation; |
| 1248 | } logic_op; | 1248 | } logic_op; |
| 1249 | 1249 | ||
| 1250 | INSERT_UNION_PADDING_WORDS(0x1); | 1250 | INSERT_PADDING_WORDS_NOINIT(0x1); |
| 1251 | 1251 | ||
| 1252 | union { | 1252 | union { |
| 1253 | u32 raw; | 1253 | u32 raw; |
| @@ -1260,9 +1260,9 @@ public: | |||
| 1260 | BitField<6, 4, u32> RT; | 1260 | BitField<6, 4, u32> RT; |
| 1261 | BitField<10, 11, u32> layer; | 1261 | BitField<10, 11, u32> layer; |
| 1262 | } clear_buffers; | 1262 | } clear_buffers; |
| 1263 | INSERT_UNION_PADDING_WORDS(0xB); | 1263 | INSERT_PADDING_WORDS_NOINIT(0xB); |
| 1264 | std::array<ColorMask, NumRenderTargets> color_mask; | 1264 | std::array<ColorMask, NumRenderTargets> color_mask; |
| 1265 | INSERT_UNION_PADDING_WORDS(0x38); | 1265 | INSERT_PADDING_WORDS_NOINIT(0x38); |
| 1266 | 1266 | ||
| 1267 | struct { | 1267 | struct { |
| 1268 | u32 query_address_high; | 1268 | u32 query_address_high; |
| @@ -1284,7 +1284,7 @@ public: | |||
| 1284 | } | 1284 | } |
| 1285 | } query; | 1285 | } query; |
| 1286 | 1286 | ||
| 1287 | INSERT_UNION_PADDING_WORDS(0x3C); | 1287 | INSERT_PADDING_WORDS_NOINIT(0x3C); |
| 1288 | 1288 | ||
| 1289 | struct { | 1289 | struct { |
| 1290 | union { | 1290 | union { |
| @@ -1325,10 +1325,10 @@ public: | |||
| 1325 | BitField<4, 4, ShaderProgram> program; | 1325 | BitField<4, 4, ShaderProgram> program; |
| 1326 | }; | 1326 | }; |
| 1327 | u32 offset; | 1327 | u32 offset; |
| 1328 | INSERT_UNION_PADDING_WORDS(14); | 1328 | INSERT_PADDING_WORDS_NOINIT(14); |
| 1329 | } shader_config[MaxShaderProgram]; | 1329 | } shader_config[MaxShaderProgram]; |
| 1330 | 1330 | ||
| 1331 | INSERT_UNION_PADDING_WORDS(0x60); | 1331 | INSERT_PADDING_WORDS_NOINIT(0x60); |
| 1332 | 1332 | ||
| 1333 | u32 firmware[0x20]; | 1333 | u32 firmware[0x20]; |
| 1334 | 1334 | ||
| @@ -1345,7 +1345,7 @@ public: | |||
| 1345 | } | 1345 | } |
| 1346 | } const_buffer; | 1346 | } const_buffer; |
| 1347 | 1347 | ||
| 1348 | INSERT_UNION_PADDING_WORDS(0x10); | 1348 | INSERT_PADDING_WORDS_NOINIT(0x10); |
| 1349 | 1349 | ||
| 1350 | struct { | 1350 | struct { |
| 1351 | union { | 1351 | union { |
| @@ -1353,18 +1353,18 @@ public: | |||
| 1353 | BitField<0, 1, u32> valid; | 1353 | BitField<0, 1, u32> valid; |
| 1354 | BitField<4, 5, u32> index; | 1354 | BitField<4, 5, u32> index; |
| 1355 | }; | 1355 | }; |
| 1356 | INSERT_UNION_PADDING_WORDS(7); | 1356 | INSERT_PADDING_WORDS_NOINIT(7); |
| 1357 | } cb_bind[MaxShaderStage]; | 1357 | } cb_bind[MaxShaderStage]; |
| 1358 | 1358 | ||
| 1359 | INSERT_UNION_PADDING_WORDS(0x56); | 1359 | INSERT_PADDING_WORDS_NOINIT(0x56); |
| 1360 | 1360 | ||
| 1361 | u32 tex_cb_index; | 1361 | u32 tex_cb_index; |
| 1362 | 1362 | ||
| 1363 | INSERT_UNION_PADDING_WORDS(0x7D); | 1363 | INSERT_PADDING_WORDS_NOINIT(0x7D); |
| 1364 | 1364 | ||
| 1365 | std::array<std::array<u8, 128>, NumTransformFeedbackBuffers> tfb_varying_locs; | 1365 | std::array<std::array<u8, 128>, NumTransformFeedbackBuffers> tfb_varying_locs; |
| 1366 | 1366 | ||
| 1367 | INSERT_UNION_PADDING_WORDS(0x298); | 1367 | INSERT_PADDING_WORDS_NOINIT(0x298); |
| 1368 | 1368 | ||
| 1369 | struct { | 1369 | struct { |
| 1370 | /// Compressed address of a buffer that holds information about bound SSBOs. | 1370 | /// Compressed address of a buffer that holds information about bound SSBOs. |
| @@ -1376,14 +1376,14 @@ public: | |||
| 1376 | } | 1376 | } |
| 1377 | } ssbo_info; | 1377 | } ssbo_info; |
| 1378 | 1378 | ||
| 1379 | INSERT_UNION_PADDING_WORDS(0x11); | 1379 | INSERT_PADDING_WORDS_NOINIT(0x11); |
| 1380 | 1380 | ||
| 1381 | struct { | 1381 | struct { |
| 1382 | u32 address[MaxShaderStage]; | 1382 | u32 address[MaxShaderStage]; |
| 1383 | u32 size[MaxShaderStage]; | 1383 | u32 size[MaxShaderStage]; |
| 1384 | } tex_info_buffers; | 1384 | } tex_info_buffers; |
| 1385 | 1385 | ||
| 1386 | INSERT_UNION_PADDING_WORDS(0xCC); | 1386 | INSERT_PADDING_WORDS_NOINIT(0xCC); |
| 1387 | }; | 1387 | }; |
| 1388 | std::array<u32, NUM_REGS> reg_array; | 1388 | std::array<u32, NUM_REGS> reg_array; |
| 1389 | }; | 1389 | }; |
diff --git a/src/video_core/engines/shader_header.h b/src/video_core/engines/shader_header.h index ceec05459..e0d7b89c5 100644 --- a/src/video_core/engines/shader_header.h +++ b/src/video_core/engines/shader_header.h | |||
| @@ -68,10 +68,10 @@ struct Header { | |||
| 68 | 68 | ||
| 69 | union { | 69 | union { |
| 70 | struct { | 70 | struct { |
| 71 | INSERT_UNION_PADDING_BYTES(3); // ImapSystemValuesA | 71 | INSERT_PADDING_BYTES_NOINIT(3); // ImapSystemValuesA |
| 72 | INSERT_UNION_PADDING_BYTES(1); // ImapSystemValuesB | 72 | INSERT_PADDING_BYTES_NOINIT(1); // ImapSystemValuesB |
| 73 | INSERT_UNION_PADDING_BYTES(16); // ImapGenericVector[32] | 73 | INSERT_PADDING_BYTES_NOINIT(16); // ImapGenericVector[32] |
| 74 | INSERT_UNION_PADDING_BYTES(2); // ImapColor | 74 | INSERT_PADDING_BYTES_NOINIT(2); // ImapColor |
| 75 | union { | 75 | union { |
| 76 | BitField<0, 8, u16> clip_distances; | 76 | BitField<0, 8, u16> clip_distances; |
| 77 | BitField<8, 1, u16> point_sprite_s; | 77 | BitField<8, 1, u16> point_sprite_s; |
| @@ -82,20 +82,20 @@ struct Header { | |||
| 82 | BitField<14, 1, u16> instance_id; | 82 | BitField<14, 1, u16> instance_id; |
| 83 | BitField<15, 1, u16> vertex_id; | 83 | BitField<15, 1, u16> vertex_id; |
| 84 | }; | 84 | }; |
| 85 | INSERT_UNION_PADDING_BYTES(5); // ImapFixedFncTexture[10] | 85 | INSERT_PADDING_BYTES_NOINIT(5); // ImapFixedFncTexture[10] |
| 86 | INSERT_UNION_PADDING_BYTES(1); // ImapReserved | 86 | INSERT_PADDING_BYTES_NOINIT(1); // ImapReserved |
| 87 | INSERT_UNION_PADDING_BYTES(3); // OmapSystemValuesA | 87 | INSERT_PADDING_BYTES_NOINIT(3); // OmapSystemValuesA |
| 88 | INSERT_UNION_PADDING_BYTES(1); // OmapSystemValuesB | 88 | INSERT_PADDING_BYTES_NOINIT(1); // OmapSystemValuesB |
| 89 | INSERT_UNION_PADDING_BYTES(16); // OmapGenericVector[32] | 89 | INSERT_PADDING_BYTES_NOINIT(16); // OmapGenericVector[32] |
| 90 | INSERT_UNION_PADDING_BYTES(2); // OmapColor | 90 | INSERT_PADDING_BYTES_NOINIT(2); // OmapColor |
| 91 | INSERT_UNION_PADDING_BYTES(2); // OmapSystemValuesC | 91 | INSERT_PADDING_BYTES_NOINIT(2); // OmapSystemValuesC |
| 92 | INSERT_UNION_PADDING_BYTES(5); // OmapFixedFncTexture[10] | 92 | INSERT_PADDING_BYTES_NOINIT(5); // OmapFixedFncTexture[10] |
| 93 | INSERT_UNION_PADDING_BYTES(1); // OmapReserved | 93 | INSERT_PADDING_BYTES_NOINIT(1); // OmapReserved |
| 94 | } vtg; | 94 | } vtg; |
| 95 | 95 | ||
| 96 | struct { | 96 | struct { |
| 97 | INSERT_UNION_PADDING_BYTES(3); // ImapSystemValuesA | 97 | INSERT_PADDING_BYTES_NOINIT(3); // ImapSystemValuesA |
| 98 | INSERT_UNION_PADDING_BYTES(1); // ImapSystemValuesB | 98 | INSERT_PADDING_BYTES_NOINIT(1); // ImapSystemValuesB |
| 99 | 99 | ||
| 100 | union { | 100 | union { |
| 101 | BitField<0, 2, PixelImap> x; | 101 | BitField<0, 2, PixelImap> x; |
| @@ -105,10 +105,10 @@ struct Header { | |||
| 105 | u8 raw; | 105 | u8 raw; |
| 106 | } imap_generic_vector[32]; | 106 | } imap_generic_vector[32]; |
| 107 | 107 | ||
| 108 | INSERT_UNION_PADDING_BYTES(2); // ImapColor | 108 | INSERT_PADDING_BYTES_NOINIT(2); // ImapColor |
| 109 | INSERT_UNION_PADDING_BYTES(2); // ImapSystemValuesC | 109 | INSERT_PADDING_BYTES_NOINIT(2); // ImapSystemValuesC |
| 110 | INSERT_UNION_PADDING_BYTES(10); // ImapFixedFncTexture[10] | 110 | INSERT_PADDING_BYTES_NOINIT(10); // ImapFixedFncTexture[10] |
| 111 | INSERT_UNION_PADDING_BYTES(2); // ImapReserved | 111 | INSERT_PADDING_BYTES_NOINIT(2); // ImapReserved |
| 112 | 112 | ||
| 113 | struct { | 113 | struct { |
| 114 | u32 target; | 114 | u32 target; |
diff --git a/src/video_core/gpu.h b/src/video_core/gpu.h index d81e38680..b4ce6b154 100644 --- a/src/video_core/gpu.h +++ b/src/video_core/gpu.h | |||
| @@ -270,7 +270,7 @@ public: | |||
| 270 | 270 | ||
| 271 | union { | 271 | union { |
| 272 | struct { | 272 | struct { |
| 273 | INSERT_UNION_PADDING_WORDS(0x4); | 273 | INSERT_PADDING_WORDS_NOINIT(0x4); |
| 274 | struct { | 274 | struct { |
| 275 | u32 address_high; | 275 | u32 address_high; |
| 276 | u32 address_low; | 276 | u32 address_low; |
| @@ -283,18 +283,18 @@ public: | |||
| 283 | 283 | ||
| 284 | u32 semaphore_sequence; | 284 | u32 semaphore_sequence; |
| 285 | u32 semaphore_trigger; | 285 | u32 semaphore_trigger; |
| 286 | INSERT_UNION_PADDING_WORDS(0xC); | 286 | INSERT_PADDING_WORDS_NOINIT(0xC); |
| 287 | 287 | ||
| 288 | // The pusher and the puller share the reference counter, the pusher only has read | 288 | // The pusher and the puller share the reference counter, the pusher only has read |
| 289 | // access | 289 | // access |
| 290 | u32 reference_count; | 290 | u32 reference_count; |
| 291 | INSERT_UNION_PADDING_WORDS(0x5); | 291 | INSERT_PADDING_WORDS_NOINIT(0x5); |
| 292 | 292 | ||
| 293 | u32 semaphore_acquire; | 293 | u32 semaphore_acquire; |
| 294 | u32 semaphore_release; | 294 | u32 semaphore_release; |
| 295 | u32 fence_value; | 295 | u32 fence_value; |
| 296 | FenceAction fence_action; | 296 | FenceAction fence_action; |
| 297 | INSERT_UNION_PADDING_WORDS(0xE2); | 297 | INSERT_PADDING_WORDS_NOINIT(0xE2); |
| 298 | 298 | ||
| 299 | // Puller state | 299 | // Puller state |
| 300 | u32 acquire_mode; | 300 | u32 acquire_mode; |