diff options
| author | 2016-03-09 20:08:38 -0800 | |
|---|---|---|
| committer | 2016-03-09 20:08:38 -0800 | |
| commit | 305e63d9eafb74774cb3d390eea0da74a64665d7 (patch) | |
| tree | 234a7facd4f953885d195d3c44d5f77f3cddcb14 | |
| parent | Merge pull request #1478 from JayFoxRox/master (diff) | |
| parent | Common: Get rid of alignment macros (diff) | |
| download | yuzu-305e63d9eafb74774cb3d390eea0da74a64665d7.tar.gz yuzu-305e63d9eafb74774cb3d390eea0da74a64665d7.tar.xz yuzu-305e63d9eafb74774cb3d390eea0da74a64665d7.zip | |
Merge pull request #1475 from lioncash/align
Common: Get rid of alignment macros
| -rw-r--r-- | src/common/common_funcs.h | 10 | ||||
| -rw-r--r-- | src/video_core/shader/shader.h | 8 |
2 files changed, 5 insertions, 13 deletions
diff --git a/src/common/common_funcs.h b/src/common/common_funcs.h index ed20c3629..aa6aff7b9 100644 --- a/src/common/common_funcs.h +++ b/src/common/common_funcs.h | |||
| @@ -18,19 +18,11 @@ | |||
| 18 | #define INSERT_PADDING_BYTES(num_bytes) u8 CONCAT2(pad, __LINE__)[(num_bytes)] | 18 | #define INSERT_PADDING_BYTES(num_bytes) u8 CONCAT2(pad, __LINE__)[(num_bytes)] |
| 19 | #define INSERT_PADDING_WORDS(num_words) u32 CONCAT2(pad, __LINE__)[(num_words)] | 19 | #define INSERT_PADDING_WORDS(num_words) u32 CONCAT2(pad, __LINE__)[(num_words)] |
| 20 | 20 | ||
| 21 | // Inlining | ||
| 21 | #ifdef _WIN32 | 22 | #ifdef _WIN32 |
| 22 | // Alignment | ||
| 23 | #define FORCE_INLINE __forceinline | 23 | #define FORCE_INLINE __forceinline |
| 24 | #define MEMORY_ALIGNED16(x) __declspec(align(16)) x | ||
| 25 | #define MEMORY_ALIGNED32(x) __declspec(align(32)) x | ||
| 26 | #define MEMORY_ALIGNED64(x) __declspec(align(64)) x | ||
| 27 | #define MEMORY_ALIGNED128(x) __declspec(align(128)) x | ||
| 28 | #else | 24 | #else |
| 29 | #define FORCE_INLINE inline __attribute__((always_inline)) | 25 | #define FORCE_INLINE inline __attribute__((always_inline)) |
| 30 | #define MEMORY_ALIGNED16(x) __attribute__((aligned(16))) x | ||
| 31 | #define MEMORY_ALIGNED32(x) __attribute__((aligned(32))) x | ||
| 32 | #define MEMORY_ALIGNED64(x) __attribute__((aligned(64))) x | ||
| 33 | #define MEMORY_ALIGNED128(x) __attribute__((aligned(128))) x | ||
| 34 | #endif | 26 | #endif |
| 35 | 27 | ||
| 36 | #ifndef _MSC_VER | 28 | #ifndef _MSC_VER |
diff --git a/src/video_core/shader/shader.h b/src/video_core/shader/shader.h index 1be4e3734..7af8f1fa1 100644 --- a/src/video_core/shader/shader.h +++ b/src/video_core/shader/shader.h | |||
| @@ -82,7 +82,7 @@ struct ShaderSetup { | |||
| 82 | struct { | 82 | struct { |
| 83 | // The float uniforms are accessed by the shader JIT using SSE instructions, and are | 83 | // The float uniforms are accessed by the shader JIT using SSE instructions, and are |
| 84 | // therefore required to be 16-byte aligned. | 84 | // therefore required to be 16-byte aligned. |
| 85 | Math::Vec4<float24> MEMORY_ALIGNED16(f[96]); | 85 | alignas(16) Math::Vec4<float24> f[96]; |
| 86 | 86 | ||
| 87 | std::array<bool, 16> b; | 87 | std::array<bool, 16> b; |
| 88 | std::array<Math::Vec4<u8>, 4> i; | 88 | std::array<Math::Vec4<u8>, 4> i; |
| @@ -276,9 +276,9 @@ struct UnitState { | |||
| 276 | struct Registers { | 276 | struct Registers { |
| 277 | // The registers are accessed by the shader JIT using SSE instructions, and are therefore | 277 | // The registers are accessed by the shader JIT using SSE instructions, and are therefore |
| 278 | // required to be 16-byte aligned. | 278 | // required to be 16-byte aligned. |
| 279 | Math::Vec4<float24> MEMORY_ALIGNED16(input[16]); | 279 | alignas(16) Math::Vec4<float24> input[16]; |
| 280 | Math::Vec4<float24> MEMORY_ALIGNED16(output[16]); | 280 | alignas(16) Math::Vec4<float24> output[16]; |
| 281 | Math::Vec4<float24> MEMORY_ALIGNED16(temporary[16]); | 281 | alignas(16) Math::Vec4<float24> temporary[16]; |
| 282 | } registers; | 282 | } registers; |
| 283 | static_assert(std::is_pod<Registers>::value, "Structure is not POD"); | 283 | static_assert(std::is_pod<Registers>::value, "Structure is not POD"); |
| 284 | 284 | ||