diff options
| author | 2020-10-09 23:38:02 -0700 | |
|---|---|---|
| committer | 2020-10-09 23:38:02 -0700 | |
| commit | 419a59a7b1d076c0afc216817dbb9ad17d04b77e (patch) | |
| tree | 1f066b2cc437e6dac721f5c02a9e92e7cf3fdba2 | |
| parent | Merge pull request #4757 from german77/BetterMotion (diff) | |
| parent | video_core: Enforce -Wclass-memaccess (diff) | |
| download | yuzu-419a59a7b1d076c0afc216817dbb9ad17d04b77e.tar.gz yuzu-419a59a7b1d076c0afc216817dbb9ad17d04b77e.tar.xz yuzu-419a59a7b1d076c0afc216817dbb9ad17d04b77e.zip | |
Merge pull request #4775 from ReinUsesLisp/enforce-class-memaccess
video_core: Enforce -Wclass-memaccess
Diffstat (limited to '')
| -rw-r--r-- | src/video_core/CMakeLists.txt | 1 | ||||
| -rw-r--r-- | src/video_core/engines/shader_header.h | 13 |
2 files changed, 7 insertions, 7 deletions
diff --git a/src/video_core/CMakeLists.txt b/src/video_core/CMakeLists.txt index 2be455679..3df54816d 100644 --- a/src/video_core/CMakeLists.txt +++ b/src/video_core/CMakeLists.txt | |||
| @@ -279,5 +279,6 @@ else() | |||
| 279 | -Werror=switch | 279 | -Werror=switch |
| 280 | -Werror=unused-variable | 280 | -Werror=unused-variable |
| 281 | -Werror=unused-but-set-variable | 281 | -Werror=unused-but-set-variable |
| 282 | -Werror=class-memaccess | ||
| 282 | ) | 283 | ) |
| 283 | endif() | 284 | endif() |
diff --git a/src/video_core/engines/shader_header.h b/src/video_core/engines/shader_header.h index 72e2a33d5..ceec05459 100644 --- a/src/video_core/engines/shader_header.h +++ b/src/video_core/engines/shader_header.h | |||
| @@ -41,30 +41,30 @@ struct Header { | |||
| 41 | BitField<26, 1, u32> does_load_or_store; | 41 | BitField<26, 1, u32> does_load_or_store; |
| 42 | BitField<27, 1, u32> does_fp64; | 42 | BitField<27, 1, u32> does_fp64; |
| 43 | BitField<28, 4, u32> stream_out_mask; | 43 | BitField<28, 4, u32> stream_out_mask; |
| 44 | } common0{}; | 44 | } common0; |
| 45 | 45 | ||
| 46 | union { | 46 | union { |
| 47 | BitField<0, 24, u32> shader_local_memory_low_size; | 47 | BitField<0, 24, u32> shader_local_memory_low_size; |
| 48 | BitField<24, 8, u32> per_patch_attribute_count; | 48 | BitField<24, 8, u32> per_patch_attribute_count; |
| 49 | } common1{}; | 49 | } common1; |
| 50 | 50 | ||
| 51 | union { | 51 | union { |
| 52 | BitField<0, 24, u32> shader_local_memory_high_size; | 52 | BitField<0, 24, u32> shader_local_memory_high_size; |
| 53 | BitField<24, 8, u32> threads_per_input_primitive; | 53 | BitField<24, 8, u32> threads_per_input_primitive; |
| 54 | } common2{}; | 54 | } common2; |
| 55 | 55 | ||
| 56 | union { | 56 | union { |
| 57 | BitField<0, 24, u32> shader_local_memory_crs_size; | 57 | BitField<0, 24, u32> shader_local_memory_crs_size; |
| 58 | BitField<24, 4, OutputTopology> output_topology; | 58 | BitField<24, 4, OutputTopology> output_topology; |
| 59 | BitField<28, 4, u32> reserved; | 59 | BitField<28, 4, u32> reserved; |
| 60 | } common3{}; | 60 | } common3; |
| 61 | 61 | ||
| 62 | union { | 62 | union { |
| 63 | BitField<0, 12, u32> max_output_vertices; | 63 | BitField<0, 12, u32> max_output_vertices; |
| 64 | BitField<12, 8, u32> store_req_start; // NOTE: not used by geometry shaders. | 64 | BitField<12, 8, u32> store_req_start; // NOTE: not used by geometry shaders. |
| 65 | BitField<20, 4, u32> reserved; | 65 | BitField<20, 4, u32> reserved; |
| 66 | BitField<24, 8, u32> store_req_end; // NOTE: not used by geometry shaders. | 66 | BitField<24, 8, u32> store_req_end; // NOTE: not used by geometry shaders. |
| 67 | } common4{}; | 67 | } common4; |
| 68 | 68 | ||
| 69 | union { | 69 | union { |
| 70 | struct { | 70 | struct { |
| @@ -145,7 +145,7 @@ struct Header { | |||
| 145 | } | 145 | } |
| 146 | } ps; | 146 | } ps; |
| 147 | 147 | ||
| 148 | std::array<u32, 0xF> raw{}; | 148 | std::array<u32, 0xF> raw; |
| 149 | }; | 149 | }; |
| 150 | 150 | ||
| 151 | u64 GetLocalMemorySize() const { | 151 | u64 GetLocalMemorySize() const { |
| @@ -153,7 +153,6 @@ struct Header { | |||
| 153 | (common2.shader_local_memory_high_size << 24)); | 153 | (common2.shader_local_memory_high_size << 24)); |
| 154 | } | 154 | } |
| 155 | }; | 155 | }; |
| 156 | |||
| 157 | static_assert(sizeof(Header) == 0x50, "Incorrect structure size"); | 156 | static_assert(sizeof(Header) == 0x50, "Incorrect structure size"); |
| 158 | 157 | ||
| 159 | } // namespace Tegra::Shader | 158 | } // namespace Tegra::Shader |