linker: Set rela bits for all symbol types

This commit is contained in:
IndecisiveTurtle 2024-06-22 13:40:01 +03:00 committed by georgemoralis
parent 11bfdf2348
commit 73d60b7e8d
3 changed files with 6 additions and 2 deletions

View file

@ -150,11 +150,13 @@ void Linker::Relocate(Module* module) {
case R_X86_64_RELATIVE:
rel_value = rel_base_virtual_addr + addend;
rel_is_resolved = true;
module->SetRelaBit(bit_idx);
break;
case R_X86_64_DTPMOD64:
rel_value = static_cast<u64>(module->tls.modid);
rel_is_resolved = true;
rel_sym_type = Loader::SymbolType::Tls;
module->SetRelaBit(bit_idx);
break;
case R_X86_64_GLOB_DAT:
case R_X86_64_JUMP_SLOT:

View file

@ -251,7 +251,8 @@ IR::Value PatchCubeCoord(IR::IREmitter& ir, const IR::Value& s, const IR::Value&
void PatchImageInstruction(IR::Block& block, IR::Inst& inst, Info& info, Descriptors& descriptors) {
IR::Inst* producer = inst.Arg(0).InstRecursive();
ASSERT(producer->GetOpcode() == IR::Opcode::CompositeConstructU32x2 || // IMAGE_SAMPLE (image+sampler)
ASSERT(producer->GetOpcode() ==
IR::Opcode::CompositeConstructU32x2 || // IMAGE_SAMPLE (image+sampler)
producer->GetOpcode() == IR::Opcode::ReadConst || // IMAGE_LOAD (image only)
producer->GetOpcode() == IR::Opcode::GetUserData);
const auto [tsharp_handle, ssharp_handle] = [&] -> std::pair<IR::Inst*, IR::Inst*> {

View file

@ -226,7 +226,8 @@ static constexpr vk::BufferUsageFlags StagingFlags = vk::BufferUsageFlagBits::eT
vk::BufferUsageFlagBits::eStorageBuffer;
TileManager::TileManager(const Vulkan::Instance& instance, Vulkan::Scheduler& scheduler)
: instance{instance}, scheduler{scheduler}, staging{instance, scheduler, StagingFlags, 64_MB, Vulkan::BufferType::Upload} {
: instance{instance}, scheduler{scheduler},
staging{instance, scheduler, StagingFlags, 64_MB, Vulkan::BufferType::Upload} {
static const std::array detiler_shaders{
HostShaders::DETILE_M8X1_COMP,