mirror of
https://github.com/KytyPS5/KytyPS5.git
synced 2026-10-28 00:12:40 +00:00
graphics: synthesize always-visible occlusion query results
This commit is contained in:
1 parent
5e64efce4f
commit
c130d74efc
4 files changed
+93
-11
No files matched your search
@@ -103,7 +103,7 @@ public:
|
||||
uint32_t mode);
|
||||
void DispatchIndirect(uint32_t data_offset, uint32_t mode);
|
||||
void WaitFlipDone(uint32_t video_out_handle, uint32_t display_buffer_index);
|
||||
void TriggerEvent(uint32_t event_type, uint32_t event_index);
|
||||
void TriggerEvent(uint32_t event_type, uint32_t event_index, uint64_t event_address = 0);
|
||||
|
||||
void SetUserDataMarker(HW::UserSgprType type) { m_user_data_marker = type; }
|
||||
[[nodiscard]] HW::UserSgprType GetUserDataMarker() const { return m_user_data_marker; }
|
||||
@@ -178,8 +178,9 @@ private:
|
||||
uint32_t m_const_ram[0x3000] = {0};
|
||||
|
||||
FlipInfo m_flip;
|
||||
uint64_t m_submit_id = 0;
|
||||
bool m_predicate_skip = false;
|
||||
uint64_t m_submit_id = 0;
|
||||
uint64_t m_synthetic_occlusion_counter = 0;
|
||||
bool m_predicate_skip = false;
|
||||
};
|
||||
|
||||
} // namespace Libs::Graphics
|
||||
|
||||
@@ -2147,12 +2147,19 @@ KYTY_CP_OP_PARSER(CpOpEventWrite) {
|
||||
|
||||
EXIT_NOT_IMPLEMENTED(((cmd_id >> 8u) & 0xffu) != Pm4::IT_EVENT_WRITE);
|
||||
|
||||
uint32_t event_index = (buffer[0] >> 8u) & 0x7u;
|
||||
uint32_t event_type = (buffer[0]) & 0x3fu;
|
||||
const auto packet_size_dw = KYTY_PM4_LEN(cmd_id);
|
||||
uint32_t event_index = (buffer[0] >> 8u) & 0x7u;
|
||||
uint32_t event_type = (buffer[0]) & 0x3fu;
|
||||
uint64_t event_address = 0;
|
||||
|
||||
cp.TriggerEvent(event_type, event_index);
|
||||
if (event_type == 0x39u) {
|
||||
EXIT_NOT_IMPLEMENTED(packet_size_dw != 4u);
|
||||
event_address = buffer[1] | (static_cast<uint64_t>(buffer[2]) << 32u);
|
||||
}
|
||||
|
||||
return KYTY_PM4_LEN(cmd_id) - 1u;
|
||||
cp.TriggerEvent(event_type, event_index, event_address);
|
||||
|
||||
return packet_size_dw - 1u;
|
||||
}
|
||||
|
||||
KYTY_CP_OP_PARSER(CpOpEventWriteEop) {
|
||||
|
||||
Reference in new issue
Block a user