mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-16 18:00:36 +01:00
st/mesa: define ST_NEW_ flags as uint64_t values, not enums
MSVC doesn't support 64-bit enum values, at least not with C code. The compiler was warning: c:\users\brian\projects\mesa\src\mesa\state_tracker\st_atom_list.h(43) : warning C4309: 'initializing' : truncation of constant value c:\users\brian\projects\mesa\src\mesa\state_tracker\st_atom_list.h(44) : warning C4309: 'initializing' : truncation of constant value ... And at runtime we crashed since the high 32-bits of the 'dirty' bitmask was always 0xffffffff and the 32+u_bit_scan() index went out of bounds of the atoms[] array. Reviewed-by: Marek Olšák <marek.olsak@amd.com> Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
This commit is contained in:
parent
d9519c6f06
commit
60dc36a680
1 changed files with 4 additions and 4 deletions
|
|
@ -68,12 +68,12 @@ enum {
|
|||
#undef ST_STATE
|
||||
};
|
||||
|
||||
/* Define ST_NEW_xxx */
|
||||
enum {
|
||||
#define ST_STATE(FLAG, st_update) FLAG = 1llu << FLAG##_INDEX,
|
||||
/* Define ST_NEW_xxx values as static const uint64_t values.
|
||||
* We can't use an enum type because MSVC doesn't allow 64-bit enum values.
|
||||
*/
|
||||
#define ST_STATE(FLAG, st_update) static const uint64_t FLAG = 1llu << FLAG##_INDEX;
|
||||
#include "st_atom_list.h"
|
||||
#undef ST_STATE
|
||||
};
|
||||
|
||||
/* Add extern struct declarations. */
|
||||
#define ST_STATE(FLAG, st_update) extern const struct st_tracked_state st_update;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue