diff --git a/core/templates/a_hash_map.h b/core/templates/a_hash_map.h index de24fe4487e..03089f093a3 100644 --- a/core/templates/a_hash_map.h +++ b/core/templates/a_hash_map.h @@ -35,12 +35,12 @@ struct HashMapData { union { + uint64_t data; struct { uint32_t hash; uint32_t hash_to_key; }; - uint64_t data; }; }; diff --git a/drivers/gles3/rasterizer_scene_gles3.h b/drivers/gles3/rasterizer_scene_gles3.h index b9ac92b70e4..4d7a319fe0f 100644 --- a/drivers/gles3/rasterizer_scene_gles3.h +++ b/drivers/gles3/rasterizer_scene_gles3.h @@ -250,6 +250,10 @@ private: }; union { + struct { + uint64_t sort_key1; + uint64_t sort_key2; + }; struct { uint64_t lod_index : 8; uint64_t surface_index : 8; @@ -265,10 +269,6 @@ private: uint64_t depth_layer : 4; uint64_t priority : 8; }; - struct { - uint64_t sort_key1; - uint64_t sort_key2; - }; } sort; RS::PrimitiveType primitive = RS::PRIMITIVE_MAX; diff --git a/scene/3d/voxelizer.h b/scene/3d/voxelizer.h index 41e77673085..161fa0e2245 100644 --- a/scene/3d/voxelizer.h +++ b/scene/3d/voxelizer.h @@ -72,13 +72,13 @@ private: struct CellSort { union { + uint64_t key = 0; struct { uint64_t z : 16; uint64_t y : 16; uint64_t x : 16; uint64_t level : 16; }; - uint64_t key = 0; }; int32_t index = 0; diff --git a/scene/gui/graph_edit.h b/scene/gui/graph_edit.h index abc015cc87a..0b8717b766b 100644 --- a/scene/gui/graph_edit.h +++ b/scene/gui/graph_edit.h @@ -150,11 +150,11 @@ public: private: struct ConnectionType { union { + uint64_t key = 0; struct { uint32_t type_a; uint32_t type_b; }; - uint64_t key = 0; }; static uint32_t hash(const ConnectionType &p_conn) { diff --git a/servers/rendering/renderer_rd/forward_clustered/render_forward_clustered.h b/servers/rendering/renderer_rd/forward_clustered/render_forward_clustered.h index 567ca5d80fa..bfde315c681 100644 --- a/servers/rendering/renderer_rd/forward_clustered/render_forward_clustered.h +++ b/servers/rendering/renderer_rd/forward_clustered/render_forward_clustered.h @@ -428,6 +428,10 @@ private: }; union { + struct { + uint64_t sort_key1; + uint64_t sort_key2; + }; struct { uint64_t lod_index : 8; uint64_t surface_index : 8; @@ -443,10 +447,6 @@ private: uint64_t depth_layer : 4; uint64_t priority : 8; }; - struct { - uint64_t sort_key1; - uint64_t sort_key2; - }; } sort; RS::PrimitiveType primitive = RS::PRIMITIVE_MAX; @@ -541,6 +541,8 @@ private: struct GlobalPipelineData { union { + uint32_t key; + struct { uint32_t texture_samples : 3; uint32_t use_reflection_probes : 1; @@ -556,8 +558,6 @@ private: uint32_t use_shadow_cubemaps : 1; uint32_t use_shadow_dual_paraboloid : 1; }; - - uint32_t key; }; }; diff --git a/servers/rendering/renderer_rd/forward_mobile/render_forward_mobile.h b/servers/rendering/renderer_rd/forward_mobile/render_forward_mobile.h index e6aec9752ec..4d2513f012f 100644 --- a/servers/rendering/renderer_rd/forward_mobile/render_forward_mobile.h +++ b/servers/rendering/renderer_rd/forward_mobile/render_forward_mobile.h @@ -397,6 +397,10 @@ protected: }; union { + struct { + uint64_t sort_key1; + uint64_t sort_key2; + }; struct { // !BAS! CHECK BITS!!! @@ -413,10 +417,6 @@ protected: // uint64_t lod_index : 8; // no need to sort on LOD // uint64_t uses_forward_gi : 1; // no GI here, remove }; - struct { - uint64_t sort_key1; - uint64_t sort_key2; - }; } sort; RS::PrimitiveType primitive = RS::PRIMITIVE_MAX; @@ -575,6 +575,8 @@ public: struct GlobalPipelineData { union { + uint32_t key; + struct { uint32_t texture_samples : 3; uint32_t target_samples : 3; @@ -586,8 +588,6 @@ public: uint32_t use_shadow_cubemaps : 1; uint32_t use_shadow_dual_paraboloid : 1; }; - - uint32_t key; }; };