mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-07-26 12:04:47 +00:00
Handle occlusion query commands
This commit is contained in:
parent
0543f1fd6d
commit
abdc557262
@ -612,6 +612,26 @@ Liverpool::Task Liverpool::ProcessGraphics(std::span<const u32> dcb, std::span<c
|
||||
// immediately
|
||||
regs.cp_strmout_cntl.offset_update_done = 1;
|
||||
}
|
||||
|
||||
if (event->event_index.Value() == EventIndex::ZpassDone) {
|
||||
if (event->event_type.Value() == EventType::PixelPipeStatControl) {
|
||||
|
||||
}
|
||||
else if (event->event_type.Value() == EventType::PixelPipeStatDump) {
|
||||
if ((event->Address<u64>() & 0x8) == 0) {
|
||||
// occlusion query start
|
||||
if (rasterizer) {
|
||||
rasterizer->StartOcclusionQuery();
|
||||
}
|
||||
}
|
||||
else {
|
||||
// occlusion query end
|
||||
if (rasterizer) {
|
||||
rasterizer->EndOcclusionQuery();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case PM4ItOpcode::EventWriteEos: {
|
||||
|
@ -1271,5 +1271,12 @@ void Rasterizer::EndPredication() {
|
||||
|
||||
}
|
||||
|
||||
void Rasterizer::StartOcclusionQuery() {
|
||||
|
||||
}
|
||||
|
||||
void Rasterizer::EndOcclusionQuery() {
|
||||
|
||||
}
|
||||
|
||||
} // namespace Vulkan
|
||||
|
@ -57,6 +57,8 @@ public:
|
||||
|
||||
void StartPredication();
|
||||
void EndPredication();
|
||||
void StartOcclusionQuery();
|
||||
void EndOcclusionQuery();
|
||||
|
||||
void InlineData(VAddr address, const void* value, u32 num_bytes, bool is_gds);
|
||||
u32 ReadDataFromGds(u32 gsd_offset);
|
||||
|
Loading…
Reference in New Issue
Block a user