rename intr_1_invalid_method to indicate that it seems to also be used for software ethods

This commit is contained in:
starfrost013
2025-03-22 00:57:31 +00:00
parent 69c4b11f7b
commit b5321903de
26 changed files with 33 additions and 27 deletions

View File

@@ -79,6 +79,8 @@ typedef enum nv3_pgraph_class_e
#define NV3_ROP_SET_ROP 0x0300 // Set GDI standard rop
#define NV3_BETA_FACTOR 0x0300
#define NV3_CLIP_POSITION 0x0300 // S16:S16, 0=topleft
#define NV3_CLIP_SIZE 0x0304 // U16:U16

View File

@@ -210,6 +210,8 @@ extern const device_config_t nv3_config[];
#define NV3_PBUS_END 0x1FFF
#define NV3_PFIFO_START 0x2000 // FIFO for DMA Object Submission (uses hashtable to store the objects)
#define NV3_PFIFO_MINIMUM_GUARANTEED_DEPTH 0x7C
#define NV3_PFIFO_DELAY_0 0x2040 // PFIFO Config Register
#define NV3_PFIFO_DEBUG_0 0x2080 // PFIFO Debug Register
#define NV3_PFIFO_CACHE0_ERROR_PENDING 0
@@ -286,7 +288,7 @@ extern const device_config_t nv3_config[];
#define NV3_PFIFO_CACHE0_METHOD_END 0x3200
#define NV3_PFIFO_CACHE0_METHOD_ADDRESS 2 // 12:2
#define NV3_PFIFO_CACHE0_METHOD_SUBCHANNEL 13 // 15:13
#define NV3_PFIFO_CACHE1_PUSH0 0x3200
#define NV3_PFIFO_CACHE1_PUSH0 0x3200
#define NV3_PFIFO_CACHE1_PUSH_CHANNEL_ID 0x3204
#define NV3_PFIFO_CACHE1_PUT 0x3210
#define NV3_PFIFO_CACHE1_PUT_ADDRESS 2 // 6:2
@@ -527,7 +529,7 @@ extern const device_config_t nv3_config[];
#define NV3_PGRAPH_INTR_0_SOFTWARE_NOTIFY 28 // Fired on software notification
#define NV3_PGRAPH_INTR_1 0x400104
#define NV3_PGRAPH_INTR_1_INVALID_METHOD 0 // Invalid method
#define NV3_PGRAPH_INTR_1_SOFTWARE_METHOD_PENDING 0 // Software or invalid method
#define NV3_PGRAPH_INTR_1_INVALID_DATA 4 // Invalid data. Not sure when this would be triggered.
#define NV3_PGRAPH_INTR_1_DOUBLE_NOTIFY 12 // Tried to notify while a notify was pending.
#define NV3_PGRAPH_INTR_1_CTXSW_NOTIFY 16 // Notify fired for software context

View File

@@ -34,7 +34,7 @@ void nv3_class_001_method(uint32_t param, uint32_t method_id, nv3_ramin_context_
{
default:
nv_log("%s: Invalid or Unimplemented method 0x%04x", nv3_class_names[context.class_id & 0x1F], method_id);
nv3_pgraph_interrupt_invalid(NV3_PGRAPH_INTR_1_INVALID_METHOD);
nv3_pgraph_interrupt_invalid(NV3_PGRAPH_INTR_1_SOFTWARE_METHOD_PENDING);
return;
}
}

View File

@@ -37,7 +37,7 @@ void nv3_class_002_method(uint32_t param, uint32_t method_id, nv3_ramin_context_
break;
default:
nv_log("%s: Invalid or Unimplemented method 0x%04x", nv3_class_names[context.class_id & 0x1F], method_id);
nv3_pgraph_interrupt_invalid(NV3_PGRAPH_INTR_1_INVALID_METHOD);
nv3_pgraph_interrupt_invalid(NV3_PGRAPH_INTR_1_SOFTWARE_METHOD_PENDING);
return;
}
}

View File

@@ -34,7 +34,7 @@ void nv3_class_003_method(uint32_t param, uint32_t method_id, nv3_ramin_context_
{
default:
nv_log("%s: Invalid or Unimplemented method 0x%04x", nv3_class_names[context.class_id & 0x1F], method_id);
nv3_pgraph_interrupt_invalid(NV3_PGRAPH_INTR_1_INVALID_METHOD);
nv3_pgraph_interrupt_invalid(NV3_PGRAPH_INTR_1_SOFTWARE_METHOD_PENDING);
return;
}
}

View File

@@ -34,7 +34,7 @@ void nv3_class_004_method(uint32_t param, uint32_t method_id, nv3_ramin_context_
{
default:
nv_log("%s: Invalid or Unimplemented method 0x%04x", nv3_class_names[context.class_id & 0x1F], method_id);
nv3_pgraph_interrupt_invalid(NV3_PGRAPH_INTR_1_INVALID_METHOD);
nv3_pgraph_interrupt_invalid(NV3_PGRAPH_INTR_1_SOFTWARE_METHOD_PENDING);
return;
}
}

View File

@@ -43,7 +43,7 @@ void nv3_class_005_method(uint32_t param, uint32_t method_id, nv3_ramin_context_
break;
default:
nv_log("%s: Invalid or Unimplemented method 0x%04x", nv3_class_names[context.class_id & 0x1F], method_id);
nv3_pgraph_interrupt_invalid(NV3_PGRAPH_INTR_1_INVALID_METHOD);
nv3_pgraph_interrupt_invalid(NV3_PGRAPH_INTR_1_SOFTWARE_METHOD_PENDING);
return;
}
}

View File

@@ -34,7 +34,7 @@ void nv3_class_006_method(uint32_t param, uint32_t method_id, nv3_ramin_context_
{
default:
nv_log("%s: Invalid or Unimplemented method 0x%04x", nv3_class_names[context.class_id & 0x1F], method_id);
nv3_pgraph_interrupt_invalid(NV3_PGRAPH_INTR_1_INVALID_METHOD);
nv3_pgraph_interrupt_invalid(NV3_PGRAPH_INTR_1_SOFTWARE_METHOD_PENDING);
return;
}
}

View File

@@ -63,7 +63,7 @@ void nv3_class_007_method(uint32_t param, uint32_t method_id, nv3_ramin_context_
}
nv_log("%s: Invalid or Unimplemented method 0x%04x\n", nv3_class_names[context.class_id & 0x1F], method_id);
nv3_pgraph_interrupt_invalid(NV3_PGRAPH_INTR_1_INVALID_METHOD);
nv3_pgraph_interrupt_invalid(NV3_PGRAPH_INTR_1_SOFTWARE_METHOD_PENDING);
return;
}
}

View File

@@ -34,7 +34,7 @@ void nv3_class_008_method(uint32_t param, uint32_t method_id, nv3_ramin_context_
{
default:
nv_log("%s: Invalid or Unimplemented method 0x%04x", nv3_class_names[context.class_id & 0x1F], method_id);
nv3_pgraph_interrupt_invalid(NV3_PGRAPH_INTR_1_INVALID_METHOD);
nv3_pgraph_interrupt_invalid(NV3_PGRAPH_INTR_1_SOFTWARE_METHOD_PENDING);
return;
}
}

View File

@@ -34,7 +34,7 @@ void nv3_class_009_method(uint32_t param, uint32_t method_id, nv3_ramin_context_
{
default:
nv_log("%s: Invalid or Unimplemented method 0x%04x", nv3_class_names[context.class_id & 0x1F], method_id);
nv3_pgraph_interrupt_invalid(NV3_PGRAPH_INTR_1_INVALID_METHOD);
nv3_pgraph_interrupt_invalid(NV3_PGRAPH_INTR_1_SOFTWARE_METHOD_PENDING);
return;
}
}

View File

@@ -35,7 +35,7 @@ void nv3_class_00a_method(uint32_t param, uint32_t method_id, nv3_ramin_context_
{
default:
nv_log("%s: Invalid or Unimplemented method 0x%04x", nv3_class_names[context.class_id & 0x1F], method_id);
nv3_pgraph_interrupt_invalid(NV3_PGRAPH_INTR_1_INVALID_METHOD);
nv3_pgraph_interrupt_invalid(NV3_PGRAPH_INTR_1_SOFTWARE_METHOD_PENDING);
return;
}
}

View File

@@ -34,7 +34,7 @@ void nv3_class_00b_method(uint32_t param, uint32_t method_id, nv3_ramin_context_
{
default:
nv_log("%s: Invalid or Unimplemented method 0x%04x", nv3_class_names[context.class_id & 0x1F], method_id);
nv3_pgraph_interrupt_invalid(NV3_PGRAPH_INTR_1_INVALID_METHOD);
nv3_pgraph_interrupt_invalid(NV3_PGRAPH_INTR_1_SOFTWARE_METHOD_PENDING);
return;
}
}

View File

@@ -34,7 +34,7 @@ void nv3_class_00c_method(uint32_t param, uint32_t method_id, nv3_ramin_context_
{
default:
nv_log("%s: Invalid or Unimplemented method 0x%04x", nv3_class_names[context.class_id & 0x1F], method_id);
nv3_pgraph_interrupt_invalid(NV3_PGRAPH_INTR_1_INVALID_METHOD);
nv3_pgraph_interrupt_invalid(NV3_PGRAPH_INTR_1_SOFTWARE_METHOD_PENDING);
return;
}
}

View File

@@ -34,7 +34,7 @@ void nv3_class_00d_method(uint32_t param, uint32_t method_id, nv3_ramin_context_
{
default:
nv_log("%s: Invalid or Unimplemented method 0x%04x", nv3_class_names[context.class_id & 0x1F], method_id);
nv3_pgraph_interrupt_invalid(NV3_PGRAPH_INTR_1_INVALID_METHOD);
nv3_pgraph_interrupt_invalid(NV3_PGRAPH_INTR_1_SOFTWARE_METHOD_PENDING);
return;
}
}

View File

@@ -34,7 +34,7 @@ void nv3_class_00e_method(uint32_t param, uint32_t method_id, nv3_ramin_context_
{
default:
nv_log("%s: Invalid or Unimplemented method 0x%04x", nv3_class_names[context.class_id & 0x1F], method_id);
nv3_pgraph_interrupt_invalid(NV3_PGRAPH_INTR_1_INVALID_METHOD);
nv3_pgraph_interrupt_invalid(NV3_PGRAPH_INTR_1_SOFTWARE_METHOD_PENDING);
return;
}
}

View File

@@ -34,7 +34,7 @@ void nv3_class_010_method(uint32_t param, uint32_t method_id, nv3_ramin_context_
{
default:
nv_log("%s: Invalid or Unimplemented method 0x%04x", nv3_class_names[context.class_id & 0x1F], method_id);
nv3_pgraph_interrupt_invalid(NV3_PGRAPH_INTR_1_INVALID_METHOD);
nv3_pgraph_interrupt_invalid(NV3_PGRAPH_INTR_1_SOFTWARE_METHOD_PENDING);
return;
}
}

View File

@@ -34,7 +34,7 @@ void nv3_class_011_method(uint32_t param, uint32_t method_id, nv3_ramin_context_
{
default:
nv_log("%s: Invalid or Unimplemented method 0x%04x", nv3_class_names[context.class_id & 0x1F], method_id);
nv3_pgraph_interrupt_invalid(NV3_PGRAPH_INTR_1_INVALID_METHOD);
nv3_pgraph_interrupt_invalid(NV3_PGRAPH_INTR_1_SOFTWARE_METHOD_PENDING);
return;
}
}

View File

@@ -35,7 +35,7 @@ void nv3_class_012_method(uint32_t param, uint32_t method_id, nv3_ramin_context_
{
default:
nv_log("%s: Invalid or Unimplemented method 0x%04x", nv3_class_names[context.class_id & 0x1F], method_id);
nv3_pgraph_interrupt_invalid(NV3_PGRAPH_INTR_1_INVALID_METHOD);
nv3_pgraph_interrupt_invalid(NV3_PGRAPH_INTR_1_SOFTWARE_METHOD_PENDING);
return;
}
}

View File

@@ -35,7 +35,7 @@ void nv3_class_014_method(uint32_t param, uint32_t method_id, nv3_ramin_context_
{
default:
nv_log("%s: Invalid or Unimplemented method 0x%04x", nv3_class_names[context.class_id & 0x1F], method_id);
nv3_pgraph_interrupt_invalid(NV3_PGRAPH_INTR_1_INVALID_METHOD);
nv3_pgraph_interrupt_invalid(NV3_PGRAPH_INTR_1_SOFTWARE_METHOD_PENDING);
return;
}
}

View File

@@ -34,7 +34,7 @@ void nv3_class_015_method(uint32_t param, uint32_t method_id, nv3_ramin_context_
{
default:
nv_log("%s: Invalid or Unimplemented method 0x%04x", nv3_class_names[context.class_id & 0x1F], method_id);
nv3_pgraph_interrupt_invalid(NV3_PGRAPH_INTR_1_INVALID_METHOD);
nv3_pgraph_interrupt_invalid(NV3_PGRAPH_INTR_1_SOFTWARE_METHOD_PENDING);
return;
}
}

View File

@@ -34,7 +34,7 @@ void nv3_class_017_method(uint32_t param, uint32_t method_id, nv3_ramin_context_
{
default:
nv_log("%s: Invalid or Unimplemented method 0x%04x", nv3_class_names[context.class_id & 0x1F], method_id);
nv3_pgraph_interrupt_invalid(NV3_PGRAPH_INTR_1_INVALID_METHOD);
nv3_pgraph_interrupt_invalid(NV3_PGRAPH_INTR_1_SOFTWARE_METHOD_PENDING);
return;
}
}

View File

@@ -36,7 +36,7 @@ void nv3_class_018_method(uint32_t param, uint32_t method_id, nv3_ramin_context_
{
default:
nv_log("%s: Invalid or Unimplemented method 0x%04x", nv3_class_names[context.class_id & 0x1F], method_id);
nv3_pgraph_interrupt_invalid(NV3_PGRAPH_INTR_1_INVALID_METHOD);
nv3_pgraph_interrupt_invalid(NV3_PGRAPH_INTR_1_SOFTWARE_METHOD_PENDING);
return;
}
}

View File

@@ -64,6 +64,10 @@ void nv3_class_01c_method(uint32_t param, uint32_t method_id, nv3_ramin_context_
nv_log("Image in Memory BUF%d COLOR_FORMAT=0x%04x", src_buffer_id, param);
break;
/* DOn't log invalid */
case NV3_IMAGE_IN_MEMORY_IN_MEMORY_DMA_CTX_TYPE:
nv3_pgraph_interrupt_invalid(NV3_PGRAPH_INTR_1_SOFTWARE_METHOD_PENDING);
break;
/* Pitch - length between scanlines */
case NV3_IMAGE_IN_MEMORY_PITCH:
@@ -80,7 +84,7 @@ void nv3_class_01c_method(uint32_t param, uint32_t method_id, nv3_ramin_context_
break;
default:
nv_log("%s: Invalid or Unimplemented method 0x%04x", nv3_class_names[context.class_id & 0x1F], method_id);
nv3_pgraph_interrupt_invalid(NV3_PGRAPH_INTR_1_INVALID_METHOD);
nv3_pgraph_interrupt_invalid(NV3_PGRAPH_INTR_1_SOFTWARE_METHOD_PENDING);
return;
}
}

View File

@@ -56,7 +56,7 @@ void nv3_generic_method(uint32_t param, uint32_t method_id, nv3_ramin_context_t
break;
default:
nv_log("Shared Generic Methods: Invalid or Unimplemented method 0x%04x", method_id);
nv3_pgraph_interrupt_invalid(NV3_PGRAPH_INTR_1_INVALID_METHOD);
nv3_pgraph_interrupt_invalid(NV3_PGRAPH_INTR_1_SOFTWARE_METHOD_PENDING);
return;
}
}

View File

@@ -602,8 +602,6 @@ void nv3_pgraph_arbitrate_method(uint32_t param, uint16_t method, uint8_t channe
}
}
nv3_notify_if_needed(param, method, context, grobj);
}