Browse Source

video_core/engines/maxwell_3d: Add is_trivially_copyable_v check for Regs

std::memset is used to clear the entire register structure, which
requires that the Regs struct be trivially copyable (otherwise undefined
behavior is invoked). This prevents the case where a non-trivial type is
potentially added to the struct.
pull/15/merge
Lioncash 7 years ago
parent
commit
c212fc9b2c
  1. 2
      src/video_core/engines/maxwell_3d.h

2
src/video_core/engines/maxwell_3d.h

@ -6,6 +6,7 @@
#include <array>
#include <bitset>
#include <type_traits>
#include <unordered_map>
#include <vector>
@ -1107,6 +1108,7 @@ public:
} regs{};
static_assert(sizeof(Regs) == Regs::NUM_REGS * sizeof(u32), "Maxwell3D Regs has wrong size");
static_assert(std::is_trivially_copyable_v<Regs>, "Maxwell3D Regs must be trivially copyable");
struct State {
struct ConstBufferInfo {

Loading…
Cancel
Save