diff --git a/.pick_status.json b/.pick_status.json index 4bdce42901b..e318d56137c 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -841,7 +841,7 @@ "description": "nir/serialize: restore ray query variables", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "5a9cdab170502039bf0330c42295decbfdfa4c6f" }, diff --git a/src/compiler/nir/nir_serialize.c b/src/compiler/nir/nir_serialize.c index 73bf7cd44e9..7b1108533d4 100644 --- a/src/compiler/nir/nir_serialize.c +++ b/src/compiler/nir/nir_serialize.c @@ -213,7 +213,7 @@ union packed_var { unsigned data_encoding:2; unsigned type_same_as_last:1; unsigned interface_type_same_as_last:1; - unsigned _pad:1; + unsigned ray_query:1; unsigned num_members:16; } u; }; @@ -284,6 +284,8 @@ write_variable(write_ctx *ctx, const nir_variable *var) flags.u.data_encoding = var_encode_full; } + flags.u.ray_query = var->data.ray_query; + blob_write_uint32(ctx->blob, flags.u32); if (!flags.u.type_same_as_last) { @@ -385,6 +387,8 @@ read_variable(read_ctx *ctx) ctx->last_var_data = var->data; } + var->data.ray_query = flags.u.ray_query; + var->num_state_slots = flags.u.num_state_slots; if (var->num_state_slots != 0) { var->state_slots = ralloc_array(var, nir_state_slot,