Merge pull request #9252 from liamwhite/radv-superiority

maxwell3d: HLE multi-layer clear macro
This commit is contained in:
bunnei 2022-11-19 01:46:48 -08:00 committed by GitHub
commit 4975f60162
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 27 additions and 13 deletions

View file

@ -232,7 +232,7 @@ void Maxwell3D::ProcessMethodCall(u32 method, u32 argument, u32 nonshadow_argume
use_topology_override = true;
return;
case MAXWELL3D_REG_INDEX(clear_surface):
return ProcessClearBuffers();
return ProcessClearBuffers(1);
case MAXWELL3D_REG_INDEX(report_semaphore.query):
return ProcessQueryGet();
case MAXWELL3D_REG_INDEX(render_enable.mode):
@ -596,8 +596,8 @@ u32 Maxwell3D::GetRegisterValue(u32 method) const {
return regs.reg_array[method];
}
void Maxwell3D::ProcessClearBuffers() {
rasterizer->Clear();
void Maxwell3D::ProcessClearBuffers(u32 layer_count) {
rasterizer->Clear(layer_count);
}
void Maxwell3D::ProcessDraw(u32 instance_count) {

View file

@ -3086,6 +3086,9 @@ public:
std::vector<u8> inline_index_draw_indexes;
/// Handles a write to the CLEAR_BUFFERS register.
void ProcessClearBuffers(u32 layer_count);
private:
void InitializeRegisterDefaults();
@ -3120,9 +3123,6 @@ private:
/// Handles firmware blob 4
void ProcessFirmwareCall4();
/// Handles a write to the CLEAR_BUFFERS register.
void ProcessClearBuffers();
/// Handles a write to the QUERY_GET register.
void ProcessQueryGet();