|
|
|
@ -31,12 +31,14 @@ enum class BufferMethods {
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
void GPU::WriteReg(u32 method, u32 subchannel, u32 value, u32 remaining_params) {
|
|
|
|
|
LOG_WARNING(HW_GPU, "Processing method %08X on subchannel %u value %08X remaining params %u",
|
|
|
|
|
method, subchannel, value, remaining_params);
|
|
|
|
|
NGLOG_WARNING(HW_GPU,
|
|
|
|
|
"Processing method {:08X} on subchannel {} value "
|
|
|
|
|
"{:08X} remaining params {}",
|
|
|
|
|
method, subchannel, value, remaining_params);
|
|
|
|
|
|
|
|
|
|
if (method == static_cast<u32>(BufferMethods::SetGraphMacroEntry)) {
|
|
|
|
|
// Prepare to upload a new macro, reset the upload counter.
|
|
|
|
|
LOG_DEBUG(HW_GPU, "Uploading GPU macro %08X", value);
|
|
|
|
|
NGLOG_DEBUG(HW_GPU, "Uploading GPU macro {:08X}", value);
|
|
|
|
|
current_macro_entry = value;
|
|
|
|
|
current_macro_code.clear();
|
|
|
|
|
return;
|
|
|
|
@ -58,7 +60,7 @@ void GPU::WriteReg(u32 method, u32 subchannel, u32 value, u32 remaining_params)
|
|
|
|
|
|
|
|
|
|
if (method == static_cast<u32>(BufferMethods::BindObject)) {
|
|
|
|
|
// Bind the current subchannel to the desired engine id.
|
|
|
|
|
LOG_DEBUG(HW_GPU, "Binding subchannel %u to engine %u", subchannel, value);
|
|
|
|
|
NGLOG_DEBUG(HW_GPU, "Binding subchannel {} to engine {}", subchannel, value);
|
|
|
|
|
ASSERT(bound_engines.find(subchannel) == bound_engines.end());
|
|
|
|
|
bound_engines[subchannel] = static_cast<EngineID>(value);
|
|
|
|
|
return;
|
|
|
|
@ -66,7 +68,7 @@ void GPU::WriteReg(u32 method, u32 subchannel, u32 value, u32 remaining_params)
|
|
|
|
|
|
|
|
|
|
if (method < static_cast<u32>(BufferMethods::CountBufferMethods)) {
|
|
|
|
|
// TODO(Subv): Research and implement these methods.
|
|
|
|
|
LOG_ERROR(HW_GPU, "Special buffer methods other than Bind are not implemented");
|
|
|
|
|
NGLOG_ERROR(HW_GPU, "Special buffer methods other than Bind are not implemented");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|