diff --git a/src/core/hle/service/nvdrv/devices/nvhost_ctrl_gpu.h b/src/core/hle/service/nvdrv/devices/nvhost_ctrl_gpu.h index 2ad752c07..232b0e310 100644 --- a/src/core/hle/service/nvdrv/devices/nvhost_ctrl_gpu.h +++ b/src/core/hle/service/nvdrv/devices/nvhost_ctrl_gpu.h @@ -45,11 +45,19 @@ private: struct ZBCColorEntry { u32 color_ds[4]; +#ifdef _MSC_VER + }; +#else } __attribute__((packed)); +#endif struct ZBCDepthEntry { u32 depth[4]; +#ifdef _MSC_VER + }; +#else } __attribute__((packed)); +#endif std::array zbc_color_table{}; std::array zbc_depth_table{}; @@ -139,6 +147,7 @@ private: static_assert(sizeof(IoctlNvgpuGpuZcullGetInfoArgs) == 40, "IoctlNvgpuGpuZcullGetInfoArgs is incorrect size"); +#ifdef _MSC_VER #pragma pack(push, 1) struct IoctlZbcSetTable { u32 color_ds_table_index; @@ -147,8 +156,18 @@ private: u32 color_ds[4]; // 16 bytes u32 color_l2[4]; // 16 bytes u32 depth; // 4 bytes - } __attribute__((packed)); // Use GCC's packed attribute + }; #pragma pack(pop) +#else + struct IoctlZbcSetTable { + u32 color_ds_table_index; + u32 format; + u32 mode; + u32 color_ds[4]; // 16 bytes + u32 color_l2[4]; // 16 bytes + u32 depth; // 4 bytes + } __attribute__((packed)); +#endif static_assert(sizeof(IoctlZbcSetTable) == 48, "IoctlZbcSetTable is incorrect size");