mirror of
https://git.eden-emu.dev/eden-emu/eden.git
synced 2026-08-18 22:23:35 +00:00
oopsie, forgot we had a GC fixes SSBU Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4026 Reviewed-by: MaranBr <maranbr@eden-emu.dev> Reviewed-by: crueter <crueter@eden-emu.dev>
This commit is contained in:
@@ -313,13 +313,14 @@ SamplerId TextureCache<P>::GetSamplerId(u32 index, bool compute) {
|
||||
LOG_DEBUG(HW_GPU, "Invalid sampler index={}", index);
|
||||
return NULL_SAMPLER_ID;
|
||||
}
|
||||
auto const map_index = index | (compute ? Common::SlotId::TAGGED_VALUE : 0);
|
||||
auto const [descriptor, is_new] = table.Read(*gpu_memory, index);
|
||||
if (is_new) {
|
||||
auto const id = FindSampler(descriptor, compute);
|
||||
channel_state->sampler_ids.insert_or_assign(index | (compute ? Common::SlotId::TAGGED_VALUE : 0), id);
|
||||
channel_state->sampler_ids.insert_or_assign(map_index, id);
|
||||
return id;
|
||||
}
|
||||
return channel_state->sampler_ids.find(index | (compute ? Common::SlotId::TAGGED_VALUE : 0))->second;
|
||||
return channel_state->sampler_ids.find(map_index)->second;
|
||||
}
|
||||
|
||||
template <class P>
|
||||
@@ -542,6 +543,7 @@ ImageViewId TextureCache<P>::VisitImageView(u32 index, bool compute) {
|
||||
LOG_DEBUG(HW_GPU, "Invalid image view index={}", index);
|
||||
return NULL_IMAGE_VIEW_ID;
|
||||
}
|
||||
auto const map_index = index | (compute ? Common::SlotId::TAGGED_VALUE : 0);
|
||||
// Is new (on the tegra engine side)?
|
||||
auto const [descriptor, is_new] = table.Read(*gpu_memory, index);
|
||||
if (is_new) {
|
||||
@@ -551,14 +553,15 @@ ImageViewId TextureCache<P>::VisitImageView(u32 index, bool compute) {
|
||||
if (is_new_tc)
|
||||
pair->second = CreateImageView(descriptor);
|
||||
PrepareImageView(pair->second, false, false);
|
||||
channel_state->image_view_ids.insert_or_assign(index | (compute ? Common::SlotId::TAGGED_VALUE : 0), pair->second);
|
||||
channel_state->image_view_ids.insert_or_assign(map_index, pair->second);
|
||||
return pair->second;
|
||||
}
|
||||
channel_state->image_view_ids.insert_or_assign(index | (compute ? Common::SlotId::TAGGED_VALUE : 0), NULL_IMAGE_VIEW_ID);
|
||||
channel_state->image_view_ids.insert_or_assign(map_index, NULL_IMAGE_VIEW_ID);
|
||||
return NULL_IMAGE_VIEW_ID;
|
||||
}
|
||||
auto const it = channel_state->image_view_ids.find(index | (compute ? Common::SlotId::TAGGED_VALUE : 0));
|
||||
PrepareImageView(it->second, false, false);
|
||||
auto const it = channel_state->image_view_ids.find(map_index);
|
||||
if (it->second != NULL_IMAGE_VIEW_ID)
|
||||
PrepareImageView(it->second, false, false);
|
||||
return it->second;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user