mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-07-27 04:25:12 +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
|
// immediately
|
||||||
regs.cp_strmout_cntl.offset_update_done = 1;
|
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;
|
break;
|
||||||
}
|
}
|
||||||
case PM4ItOpcode::EventWriteEos: {
|
case PM4ItOpcode::EventWriteEos: {
|
||||||
|
@ -1271,5 +1271,12 @@ void Rasterizer::EndPredication() {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Rasterizer::StartOcclusionQuery() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void Rasterizer::EndOcclusionQuery() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace Vulkan
|
} // namespace Vulkan
|
||||||
|
@ -57,6 +57,8 @@ public:
|
|||||||
|
|
||||||
void StartPredication();
|
void StartPredication();
|
||||||
void EndPredication();
|
void EndPredication();
|
||||||
|
void StartOcclusionQuery();
|
||||||
|
void EndOcclusionQuery();
|
||||||
|
|
||||||
void InlineData(VAddr address, const void* value, u32 num_bytes, bool is_gds);
|
void InlineData(VAddr address, const void* value, u32 num_bytes, bool is_gds);
|
||||||
u32 ReadDataFromGds(u32 gsd_offset);
|
u32 ReadDataFromGds(u32 gsd_offset);
|
||||||
|
Loading…
Reference in New Issue
Block a user