Giovanni Mascellani (@giomasce) commented about libs/vkd3d/state.c:
if (ret) ERR("papa!\n");
- *root_signature = object; - d3d12_root_signature_AddRef(&object->ID3D12RootSignature_iface); + /* Why the hash as key and d3d root signature description as value? Because we store + * the root signature hash in pipelines and need a way to look up the root signature + * when we recreate the pipelines. + * + * Alternatively we could use bytecode as key here and store a hash -> bytecode lookup + * at runtime in device->root_signature_cache. I am unsure for now. */
Why not storing the whole root signature bytecode in the pipeline cache, so you don't have to keep another map for resolving root signature hashes? -- https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/541#note_57501