Closed mbriar closed 2 months ago
The vkd3d-proton buffer_feedback_instructions_sm51 test segfaults on open amdvlk. To reproduce build and run the vkd3d-proton tests:
buffer_feedback_instructions_sm51
git clone --recurse-submodules https://github.com/HansKristian-Work/vkd3d-proton mkdir vkd3d-proton/build && cd vkd3d-proton/build meson .. -Denable_tests=true ninja VKD3D_TEST_FILTER=buffer_feedback_instructions ./tests/d3d12
backtrace:
#0 0x00007ffff598f0b8 in llvm::DataLayout::getAlignment (this=0x555555f6e7f0, Ty=0x0, abi_or_pref=<optimized out>) at /home/mbriar/builds/amdvlk/drivers/llvm-project/llvm/lib/IR/DataLayout.cpp:749 #1 0x00007ffff47a5d51 in llvm::SelectionDAG::getEVTAlign (this=this@entry=0x555555bcd1e0, VT=...) at /home/mbriar/builds/amdvlk/drivers/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:1260 #2 0x00007ffff478737a in llvm::SelectionDAG::getMemIntrinsicNode (AAInfo=..., Size=0, Flags=(llvm::MachineMemOperand::MOLoad | llvm::MachineMemOperand::MODereferenceable), Alignment=..., PtrInfo=..., MemVT=..., Ops=..., VTList=..., dl=..., Opcode=<optimized out>, this=0x555555bcd1e0) at /home/mbriar/builds/amdvlk/drivers/llvm-project/llvm/include/llvm/CodeGen/SelectionDAG.h:1199 #3 llvm::SelectionDAGBuilder::visitTargetIntrinsic (this=0x555555e64b60, I=..., Intrinsic=<optimized out>) at /home/mbriar/builds/amdvlk/drivers/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:4871 #4 0x00007ffff476c55d in llvm::SelectionDAGBuilder::visitIntrinsicCall (this=0x555555e64b60, I=..., Intrinsic=2086) at /home/mbriar/builds/amdvlk/drivers/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:5844 #5 0x00007ffff47a16b6 in llvm::SelectionDAGBuilder::visit (this=0x555555e64b60, I=...) at /home/mbriar/builds/amdvlk/drivers/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:1135 #6 0x00007ffff47ff6e3 in llvm::SelectionDAGISel::SelectBasicBlock (this=0x555555eae450, Begin=..., End=..., HadTailCall=@0x7fffffffa690: false) at /home/mbriar/builds/amdvlk/drivers/llvm-project/llvm/include/llvm/ADT/ilist_iterator.h:137 #7 0x00007ffff4800c68 in llvm::SelectionDAGISel::SelectAllBasicBlocks (this=0x555555eae450, Fn=...) at /home/mbriar/builds/amdvlk/drivers/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1595 #8 0x00007ffff4802e75 in llvm::SelectionDAGISel::runOnMachineFunction (mf=..., this=<optimized out>) at /home/mbriar/builds/amdvlk/drivers/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:464 #9 llvm::SelectionDAGISel::runOnMachineFunction (this=0x555555eae450, mf=...) at /home/mbriar/builds/amdvlk/drivers/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:371 #10 0x00007ffff4a511a0 in llvm::MachineFunctionPass::runOnFunction (this=0x555555eae450, F=...) at /home/mbriar/builds/amdvlk/drivers/llvm-project/llvm/lib/CodeGen/MachineFunctionPass.cpp:89 #11 0x00007ffff5a24403 in llvm::FPPassManager::runOnFunction (this=this@entry=0x555555e9d9a0, F=...) at /home/mbriar/builds/amdvlk/drivers/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1430 #12 0x00007ffff53b1292 in (anonymous namespace)::CGPassManager::RunPassOnSCC (DevirtualizedCall=@0x7fffffffb796: false, CallGraphUpToDate=@0x7fffffffb7b8: true, CG=..., CurSCC=..., P=0x555555e9d9a0, this=0x555556055750) at /home/mbriar/builds/amdvlk/drivers/llvm-project/llvm/lib/Analysis/CallGraphSCCPass.cpp:179 #13 (anonymous namespace)::CGPassManager::RunAllPassesOnSCC (DevirtualizedCall=@0x7fffffffb796: false, CG=..., CurSCC=..., this=0x555556055750) at /home/mbriar/builds/amdvlk/drivers/llvm-project/llvm/lib/Analysis/CallGraphSCCPass.cpp:477 #14 (anonymous namespace)::CGPassManager::runOnModule (this=0x555556055750, M=...) at /home/mbriar/builds/amdvlk/drivers/llvm-project/llvm/lib/Analysis/CallGraphSCCPass.cpp:542 #15 0x00007ffff5a24efc in (anonymous namespace)::MPPassManager::runOnModule (M=..., this=0x555555f598f0) at /home/mbriar/builds/amdvlk/drivers/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1545 #16 llvm::legacy::PassManagerImpl::run (this=0x555556247e20, M=...) at /home/mbriar/builds/amdvlk/drivers/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:535 #17 0x00007ffff3bd97a9 in lgc::PipelineState::generateWithNewPassManager(std::unique_ptr<llvm::Module, std::default_delete<llvm::Module> >, llvm::raw_pwrite_stream&, std::function<unsigned int (llvm::Module const*, unsigned int, llvm::ArrayRef<llvm::ArrayRef<unsigned char> >)>, llvm::ArrayRef<llvm::Timer*>) (this=0x5555559a3490, pipelineModule=std::unique_ptr<llvm::Module> = {...}, outStream=..., checkShaderCacheFunc=..., timers=...) at /usr/include/c++/12.2.0/bits/unique_ptr.h:191 #18 0x00007ffff3bda1a0 in lgc::PipelineState::generate(std::unique_ptr<llvm::Module, std::default_delete<llvm::Module> >, llvm::raw_pwrite_stream&, std::function<unsigned int (llvm::Module const*, unsigned int, llvm::ArrayRef<llvm::ArrayRef<unsigned char> >)>, llvm::ArrayRef<llvm::Timer*>, bool) (this=0x5555559a3490, pipelineModule=..., outStream=..., checkShaderCacheFunc=..., timers=..., newPassManager=true) at /usr/include/c++/12.2.0/bits/unique_ptr.h:189 #19 0x00007ffff3aace44 in Llpc::Compiler::buildPipelineInternal (this=<optimized out>, context=0x555555baa850, shaderInfo=..., pipelineLink=<optimized out>, otherPartPipeline=<optimized out>, pipelineElf=<optimized out>, stageCacheAccesses=...) at /usr/include/c++/12.2.0/bits/unique_ptr.h:189 #20 0x00007ffff3aaff1d in Llpc::Compiler::buildComputePipelineInternal (this=0x55555579f0b0, computeContext=<optimized out>, pipelineInfo=<optimized out>, buildingRelocatableElf=<optimized out>, pipelineElf=0x7fffffffc700, stageCacheAccess=0x7fffffffcc01) at /usr/include/c++/12.2.0/bits/stl_vector.h:987 #21 0x00007ffff3ab00cb in Llpc::Compiler::BuildComputePipeline (this=0x55555579f0b0, pipelineInfo=0x7fffffffd350, pipelineOut=0x7fffffffcbf0, pipelineDumpFile=<optimized out>) at /home/mbriar/builds/amdvlk/drivers/llpc/llpc/context/llpcCompiler.cpp:1935 #22 0x00007ffff3841e35 in vk::CompilerSolutionLlpc::CreateComputePipelineBinary (this=0x55555604f3b8, pDevice=0x555555bf2518, deviceIdx=<optimized out>, pPipelineCache=<optimized out>, pCreateInfo=<optimized out>, pPipelineBinarySize=0x7fffffffd530, ppPipelineBinary=<optimized out>, pPipelineDumpHandle=<optimized out>, pipelineHash=<optimized out>, pCacheId=<optimized out>, pCompileTime=<optimized out>) at /home/mbriar/builds/amdvlk/drivers/xgl/icd/api/compiler_solution_llpc.cpp:507 #23 0x00007ffff37bb180 in vk::PipelineCompiler::CreateComputePipelineBinary (this=0x55555604ed98, pDevice=<optimized out>, deviceIdx=<optimized out>, pPipelineCache=<optimized out>, pCreateInfo=0x7fffffffd350, pPipelineBinarySize=<optimized out>, ppPipelineBinary=<optimized out>, pCacheId=<optimized out>) at /home/mbriar/builds/amdvlk/drivers/xgl/icd/api/pipeline_compiler.cpp:1406 #24 0x00007ffff37d9bbb in vk::ComputePipeline::Create (pDevice=<optimized out>, pPipelineCache=<optimized out>, pCreateInfo=<optimized out>, pAllocator=<optimized out>, pPipeline=<optimized out>) at /home/mbriar/builds/amdvlk/drivers/xgl/icd/api/vk_compute_pipeline.cpp:251 #25 0x00007ffff37ee196 in vk::Device::CreateComputePipelines (pPipelines=<optimized out>, pAllocator=0x5555560398a8, pCreateInfos=<optimized out>, count=<optimized out>, pipelineCache=0x0, this=0x555555bf2518) at /home/mbriar/builds/amdvlk/drivers/xgl/icd/api/vk_device.cpp:2920 #26 vk::entry::vkCreateComputePipelines (device=0x555555bf2510, pipelineCache=0x0, createInfoCount=<optimized out>, pCreateInfos=<optimized out>, pAllocator=<optimized out>, pPipelines=<optimized out>) at /home/mbriar/builds/amdvlk/drivers/xgl/icd/api/vk_device.cpp:4768 #27 0x00007ffff7caa363 in vkd3d_create_compute_pipeline (state=0x555555bc1be0, device=0x7ffff0ff0010, code=0x7fffffffdaa8) at ../libs/vkd3d/state.c:2634 #28 0x00007ffff7caa74f in d3d12_pipeline_state_init_compute (state=0x555555bc1be0, device=0x7ffff0ff0010, desc=0x7fffffffda50, cached_pso=0x7fffffffd9d0) at ../libs/vkd3d/state.c:2699 #29 0x00007ffff7caecac in d3d12_pipeline_state_create (device=0x7ffff0ff0010, bind_point=VK_PIPELINE_BIND_POINT_COMPUTE, desc=0x7fffffffda50, state=0x7fffffffda40) at ../libs/vkd3d/state.c:4195 #30 0x00007ffff7c74474 in d3d12_device_CreateComputePipelineState (iface=0x7ffff0ff0010, desc=0x7fffffffde90, riid=0x555555716040 <IID_ID3D12PipelineState>, pipeline_state=0x7fffffffde88) at ../libs/vkd3d/device.c:3173 #31 0x000055555566775b in ID3D12Device_CreateComputePipelineState (This=0x7ffff0ff0010, desc=0x7fffffffde90, riid=0x555555716040 <IID_ID3D12PipelineState>, pipeline_state=0x7fffffffde88) at libs/vkd3d-common/libvkd3d_common.a.p/vkd3d_d3d12.h:13670 #32 0x000055555566ba77 in create_compute_pipeline_state_ (line=1921, device=0x7ffff0ff0010, root_signature=0x5555559a7970, cs=...) at ../tests/d3d12_test_utils.c:822 #33 0x0000555555622c75 in test_buffer_feedback_instructions (use_dxil=false) at ../tests/d3d12_sparse.c:1921 #34 0x000055555562337a in test_buffer_feedback_instructions_sm51 () at ../tests/d3d12_sparse.c:2012 #35 0x0000555555663a22 in vkd3d_run_test (name=0x5555557181a0 "test_buffer_feedback_instructions_sm51", test_pfn=0x55555562336c <test_buffer_feedback_instructions_sm51>) at ../include/private/vkd3d_test.h:381 #36 0x0000555555665f1f in vkd3d_test_main (argc=1, argv=0x7fffffffe478) at ../tests/d3d12_tests.h:239 #37 0x00005555556638e6 in main (argc=1, argv=0x7fffffffe478) at ../include/private/vkd3d_test.h:297
The test passes on amdgpu-pro and RADV.
GPU 6700XT/NAVI22 AMDVLK v-2022.Q3.5 vkd3d-proton commit 212ae62b5
Refer to https://github.com/GPUOpen-Drivers/llpc/issues/1749
The vkd3d-proton
buffer_feedback_instructions_sm51
test segfaults on open amdvlk.To reproduce build and run the vkd3d-proton tests:
backtrace:
The test passes on amdgpu-pro and RADV.
GPU 6700XT/NAVI22 AMDVLK v-2022.Q3.5 vkd3d-proton commit 212ae62b5