mirror of
https://github.com/RPCS3/rpcs3.git
synced 2024-11-22 18:53:28 +01:00
rsx: Minor fixes
- Dont skip cb if a problem occurs, just spin on it instead to allow possibility of recovery - Vulkan cleanup for the die_with_error helper
This commit is contained in:
parent
58860614e3
commit
9af71699a4
@ -495,7 +495,6 @@ namespace rsx
|
|||||||
LOG_ERROR(RSX, "Invalid FIFO queue get/put registers found, get=0x%X, put=0x%X", get, put);
|
LOG_ERROR(RSX, "Invalid FIFO queue get/put registers found, get=0x%X, put=0x%X", get, put);
|
||||||
|
|
||||||
invalid_command_interrupt_raised = true;
|
invalid_command_interrupt_raised = true;
|
||||||
ctrl->get = put;
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -546,7 +545,6 @@ namespace rsx
|
|||||||
LOG_ERROR(RSX, "Invalid FIFO queue args ptr found, get=0x%X, cmd=0x%X, count=%d", get, cmd, count);
|
LOG_ERROR(RSX, "Invalid FIFO queue args ptr found, get=0x%X, cmd=0x%X, count=%d", get, cmd, count);
|
||||||
|
|
||||||
invalid_command_interrupt_raised = true;
|
invalid_command_interrupt_raised = true;
|
||||||
ctrl->get = put;
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -373,7 +373,7 @@ namespace vk
|
|||||||
return (g_num_processed_frames > 0)? g_num_processed_frames - 1: 0;
|
return (g_num_processed_frames > 0)? g_num_processed_frames - 1: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void die_with_error(std::string faulting_addr, VkResult error_code)
|
void die_with_error(const char* faulting_addr, VkResult error_code)
|
||||||
{
|
{
|
||||||
std::string error_message;
|
std::string error_message;
|
||||||
int severity = 0; //0 - die, 1 - warn, 2 - nothing
|
int severity = 0; //0 - die, 1 - warn, 2 - nothing
|
||||||
@ -457,16 +457,16 @@ namespace vk
|
|||||||
error_message = "Invalid external handle (VK_ERROR_INVALID_EXTERNAL_HANDLE_KHX)";
|
error_message = "Invalid external handle (VK_ERROR_INVALID_EXTERNAL_HANDLE_KHX)";
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
error_message = fmt::format("Unknown Code (%Xh, %d)", (s32)error_code, (s32&)error_code);
|
error_message = fmt::format("Unknown Code (%Xh, %d)%s", (s32)error_code, (s32&)error_code, faulting_addr);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (severity)
|
switch (severity)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
fmt::throw_exception("Assertion Failed! Vulkan API call failed with unrecoverable error: %s", (error_message + faulting_addr).c_str());
|
fmt::throw_exception("Assertion Failed! Vulkan API call failed with unrecoverable error: %s%s", error_message.c_str(), faulting_addr);
|
||||||
case 1:
|
case 1:
|
||||||
LOG_ERROR(RSX, "Vulkan API call has failed with an error but will continue: %s", (error_message + faulting_addr).c_str());
|
LOG_ERROR(RSX, "Vulkan API call has failed with an error but will continue: %s%s", error_message.c_str(), faulting_addr);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -94,7 +94,7 @@ namespace vk
|
|||||||
const u64 get_current_frame_id();
|
const u64 get_current_frame_id();
|
||||||
const u64 get_last_completed_frame_id();
|
const u64 get_last_completed_frame_id();
|
||||||
|
|
||||||
void die_with_error(std::string faulting_addr, VkResult error_code);
|
void die_with_error(const char* faulting_addr, VkResult error_code);
|
||||||
|
|
||||||
struct memory_type_mapping
|
struct memory_type_mapping
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user