ValveSoftware / Fossilize

A serialization format for various persistent Vulkan object types.
MIT License
582 stars 47 forks source link

ERROR: Consuming pipeline libraries while creating a pipeline library #209

Open mbriar opened 1 year ago

mbriar commented 1 year ago

Hey, while messing around with the UE5 RT Demo app from https://github.com/HansKristian-Work/vkd3d-proton/issues/1295, I encountered a crash in RADV's shader compiler when the app is run with VKD3D_FEATURE_LEVEL=12_2 VKD3D_CONFIG=dxr11 RADV_PERFTEST=rt. I wanted to record a fossilize archive to reproduce the crash with FOSSILIZE_DUMP_SYNC=1, but when replaying the generated archive, the compiler crash is not reproduced and I get the following errors:

Fossilize ERROR: Consuming pipeline libraries while creating a pipeline library. This cannot work.
Fossilize WARN: Did not replay blob (tag: 9, hash: 0x046ff16dd2c9efa6). See previous logs for context.
Fossilize ERROR: Consuming pipeline libraries while creating a pipeline library. This cannot work.
Fossilize WARN: Did not replay blob (tag: 9, hash: 0x57ab729c726f4ddd). See previous logs for context.
Fossilize ERROR: Consuming pipeline libraries while creating a pipeline library. This cannot work.
Fossilize WARN: Did not replay blob (tag: 9, hash: 0x046ff16dd2c9efa6). See previous logs for context.
Fossilize ERROR: Consuming pipeline libraries while creating a pipeline library. This cannot work.
Fossilize WARN: Did not replay blob (tag: 9, hash: 0x57ab729c726f4ddd). See previous logs for context.

I'm not sure whether this is a vkd3d-proton or fossilize issue, so reporting it here first. Relevant foz archive: rttest.d895ec754bd56a9e.2.zip

HansKristian-Work commented 1 year ago

Pipeline libraries can currently only be replayed with depth of 1. Chained dependencies are extremely awkward to support. At the time, it was not clear if this was even legal (but it is ...).

mbriar commented 1 year ago

Sounds like it will be hard to fix. I will report the RADV crash without a foz archive then, should still be easy enough to reproduce with the Demo app, thanks for the quick response 👍