ValveSoftware / Fossilize

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

`fossilize-disasm --target isa` crash #241

Open DadSchoorse opened 9 months ago

DadSchoorse commented 9 months ago

Using fossilize master and the attached .foz, the following command causes a pipeline creation segfault in radv: fossilize-disasm metro_part.0.foz --output frog --target isa --filter-graphics 0062066079891461

Thread 1 "fossilize-disas" received signal SIGBUS, Bus error.
0x00007ffff6f7a036 in vk_object_base_assert_valid (obj_type=VK_OBJECT_TYPE_PIPELINE, base=0xc872b2468a9de2fd) at ../src/vulkan/runtime/vk_object.h:119
119    assert(base == NULL || base->type == obj_type);
(gdb) bt
#0  0x00007ffff6f7a036 in vk_object_base_assert_valid (obj_type=VK_OBJECT_TYPE_PIPELINE, base=0xc872b2468a9de2fd) at ../src/vulkan/runtime/vk_object.h:119
#1  radv_pipeline_from_handle (_handle=0xc872b2468a9de2fd) at ../src/amd/vulkan/radv_private.h:3522
#2  radv_graphics_pipeline_init (pipeline=pipeline@entry=0x5555560e83c0, device=device@entry=0x555555e66820, cache=cache@entry=0x555555ee31a0, pCreateInfo=pCreateInfo@entry=0x555555e4b3a0, extra=extra@entry=0x0)
    at ../src/amd/vulkan/radv_pipeline_graphics.c:3880
#3  0x00007ffff6f7bc42 in radv_graphics_pipeline_create (_device=_device@entry=0x555555e66820, _cache=_cache@entry=0x555555ee31a0, pCreateInfo=pCreateInfo@entry=0x555555e4b3a0, extra=extra@entry=0x0, pAllocator=pAllocator@entry=0x0, 
    pPipeline=pPipeline@entry=0x555555e11c40) at ../src/amd/vulkan/radv_pipeline_graphics.c:4010
#4  0x00007ffff6f7c018 in radv_CreateGraphicsPipelines (_device=0x555555e66820, pipelineCache=<optimized out>, count=<optimized out>, pCreateInfos=<optimized out>, pAllocator=<optimized out>, pPipelines=<optimized out>)
    at ../src/amd/vulkan/radv_pipeline_graphics.c:4151
#5  0x000055555558c429 in DisasmReplayer::enqueue_create_graphics_pipeline(unsigned long, VkGraphicsPipelineCreateInfo const*, VkPipeline_T**) ()
#6  0x00005555555b49ef in Fossilize::StateReplayer::Impl::parse_graphics_pipeline(Fossilize::StateCreatorInterface&, Fossilize::DatabaseInterface*, rapidjson::GenericValue<rapidjson::UTF8<char>, rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator> > const&, rapidjson::GenericValue<rapidjson::UTF8<char>, rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator> > const&) ()
#7  0x00005555555b4a7f in Fossilize::StateReplayer::Impl::parse_graphics_pipelines(Fossilize::StateCreatorInterface&, Fossilize::DatabaseInterface*, rapidjson::GenericValue<rapidjson::UTF8<char>, rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator> > const&) ()
#8  0x00005555555b82d1 in Fossilize::StateReplayer::Impl::parse(Fossilize::StateCreatorInterface&, Fossilize::DatabaseInterface*, void const*, unsigned long) ()
#9  0x00005555555b79c0 in Fossilize::StateReplayer::parse(Fossilize::StateCreatorInterface&, Fossilize::DatabaseInterface*, void const*, unsigned long) ()
#10 0x0000555555583d1c in replay_hash(Fossilize::ResourceTag, unsigned long, Fossilize::DatabaseInterface&, Fossilize::StateReplayer&, Fossilize::StateCreatorInterface&, std::vector<unsigned char, std::allocator<unsigned char> >&) ()
#11 0x0000555555583e28 in replay_all_hashes(Fossilize::ResourceTag, Fossilize::DatabaseInterface&, Fossilize::StateReplayer&, Fossilize::StateCreatorInterface&, std::vector<unsigned char, std::allocator<unsigned char> >&, std::unordered_set<unsigned long, std::hash<unsigned long>, std::equal_to<unsigned long>, std::allocator<unsigned long> > const*) ()
#12 0x00005555555851e7 in main ()

fossilize-replay does not fail.

metro_part.0.foz.zip