ir3: Don't save/restore disasm string pointer

It's not in the key, so it randomly may or may not be present, and if it
is present then we don't actually save/restore the contents, so we will
save/restore random pointer values from the last run. Turnip already
disables searching the shader cache when assembly is requested, but
still wrote the final ir3_shader_variant which resulted in trying to
save random stale pointers when saving off the executable if a
subsequent compile hit that cache entry.

This fixes flakes in
dEQP-VK.pipeline.pipeline_library.shader_module_identifier.pipeline_from_id.*
for me.

Fixes: 56909868cd ("turnip: implement VK_KHR_pipeline_executable_properties")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20056>
(cherry picked from commit 8ba2d612d5)
This commit is contained in:
Connor Abbott 2022-11-29 14:30:00 +01:00 committed by Dylan Baker
parent 8c982c7f97
commit 17914b1785
2 changed files with 3 additions and 3 deletions

View file

@ -31,7 +31,7 @@
"description": "ir3: Don't save/restore disasm string pointer",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": "56909868cd12b1b143f06c02dab9503c4f7c60e3"
},

View file

@ -524,6 +524,8 @@ struct ir3_shader_variant {
*/
void *constant_data;
struct ir3_disasm_info disasm_info;
/*
* Below here is serialized when written to disk cache:
*/
@ -769,8 +771,6 @@ struct ir3_shader_variant {
/* For when we don't have a shader, variant's copy of streamout state */
struct ir3_stream_output_info stream_output;
struct ir3_disasm_info disasm_info;
};
static inline const char *