mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-07-27 04:25:12 +00:00
Fixes
This commit is contained in:
parent
4a49e2bb31
commit
c52778a2d9
@ -239,6 +239,11 @@ Liverpool::Task Liverpool::ProcessGraphics(std::span<const u32> dcb, std::span<c
|
|||||||
case 3:
|
case 3:
|
||||||
const u32 count = header->type3.NumWords();
|
const u32 count = header->type3.NumWords();
|
||||||
const PM4ItOpcode opcode = header->type3.opcode;
|
const PM4ItOpcode opcode = header->type3.opcode;
|
||||||
|
const auto predicate = header->type3.predicate;
|
||||||
|
if (predicate == PM4Predicate::PredEnable) {
|
||||||
|
LOG_DEBUG(Render_Vulkan, "PM4 command {} is predicated",
|
||||||
|
magic_enum::enum_name(opcode));
|
||||||
|
}
|
||||||
switch (opcode) {
|
switch (opcode) {
|
||||||
case PM4ItOpcode::Nop: {
|
case PM4ItOpcode::Nop: {
|
||||||
const auto* nop = reinterpret_cast<const PM4CmdNop*>(header);
|
const auto* nop = reinterpret_cast<const PM4CmdNop*>(header);
|
||||||
|
@ -420,7 +420,7 @@ struct PM4CmdEventWrite {
|
|||||||
T Address() const {
|
T Address() const {
|
||||||
ASSERT(event_index.Value() >= EventIndex::ZpassDone &&
|
ASSERT(event_index.Value() >= EventIndex::ZpassDone &&
|
||||||
event_index.Value() <= EventIndex::SampleStreamoutStatSx);
|
event_index.Value() <= EventIndex::SampleStreamoutStatSx);
|
||||||
return reinterpret_cast<T>((u64(address[1]) << 32u) | u64(address[0]));
|
return std::bit_cast<T>((u64(address[1]) << 32u) | u64(address[0]));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -1145,8 +1145,8 @@ struct PM4CmdSetPredication {
|
|||||||
|
|
||||||
template <typename T = u64>
|
template <typename T = u64>
|
||||||
T Address() const {
|
T Address() const {
|
||||||
return reinterpret_cast<T>(u64(start_address_lo.Value()) << 4 |
|
return std::bit_cast<T>(u64(start_address_lo.Value()) << 4 | u64(start_address_hi.Value())
|
||||||
u64(start_address_hi.Value()) << 32);
|
<< 32);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -424,7 +424,7 @@ bool Instance::CreateDevice() {
|
|||||||
},
|
},
|
||||||
vk::PhysicalDeviceConditionalRenderingFeaturesEXT{
|
vk::PhysicalDeviceConditionalRenderingFeaturesEXT{
|
||||||
.conditionalRendering = true,
|
.conditionalRendering = true,
|
||||||
}
|
},
|
||||||
#ifdef __APPLE__
|
#ifdef __APPLE__
|
||||||
portability_features,
|
portability_features,
|
||||||
#endif
|
#endif
|
||||||
|
@ -1290,7 +1290,10 @@ void Rasterizer::StartPredication(VAddr addr, bool draw_if_visible, bool wait_fo
|
|||||||
ASSERT(occlusion_index_mapping.contains(addr));
|
ASSERT(occlusion_index_mapping.contains(addr));
|
||||||
|
|
||||||
auto index = occlusion_index_mapping[addr];
|
auto index = occlusion_index_mapping[addr];
|
||||||
LOG_DEBUG(Render_Vulkan, "addr = {:#x}, index = {}", addr, index);
|
LOG_DEBUG(Render_Vulkan,
|
||||||
|
"addr = {:#x}, index = {}, draw_if_visible = {} "
|
||||||
|
"wait_for_result = {}",
|
||||||
|
addr, index, draw_if_visible, wait_for_result);
|
||||||
|
|
||||||
scheduler.EndRendering();
|
scheduler.EndRendering();
|
||||||
const auto cmdbuf = scheduler.CommandBuffer();
|
const auto cmdbuf = scheduler.CommandBuffer();
|
||||||
|
Loading…
Reference in New Issue
Block a user