mirror of
https://gitlab.freedesktop.org/mesa/drm.git
synced 2026-05-05 21:48:33 +02:00
intel: Put the "gen" shorthand chipset identifier in the context.
It's a lot nicer than using IS_WHATEVER(devid) all over the place, and we have this in our other projects too.
This commit is contained in:
parent
028715ee70
commit
9695eee8a2
1 changed files with 28 additions and 0 deletions
|
|
@ -21,6 +21,7 @@
|
|||
* IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include <assert.h>
|
||||
#include <stdint.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
|
|
@ -39,6 +40,12 @@ struct drm_intel_decode {
|
|||
/** PCI device ID. */
|
||||
uint32_t devid;
|
||||
|
||||
/**
|
||||
* Shorthand device identifier: 3 is 915, 4 is 965, 5 is
|
||||
* Ironlake, etc.
|
||||
*/
|
||||
int gen;
|
||||
|
||||
/** GPU address of the start of the current packet. */
|
||||
uint32_t hw_offset;
|
||||
/** CPU virtual address of the start of the current packet. */
|
||||
|
|
@ -2711,6 +2718,7 @@ decode_3d_965(struct drm_intel_decode *ctx)
|
|||
int unsigned min_len;
|
||||
int unsigned max_len;
|
||||
const char *name;
|
||||
int gen;
|
||||
} opcodes_3d[] = {
|
||||
{ 0x6000, 3, 3, "URB_FENCE" },
|
||||
{ 0x6001, 2, 2, "CS_URB_STATE" },
|
||||
|
|
@ -3327,6 +3335,11 @@ decode_3d_965(struct drm_intel_decode *ctx)
|
|||
|
||||
for (idx = 0; idx < ARRAY_SIZE(opcodes_3d); idx++) {
|
||||
opcode_3d = &opcodes_3d[idx];
|
||||
|
||||
/* If it's marked as only for a specific gen, skip. */
|
||||
if (opcode_3d->gen && opcode_3d->gen != ctx->gen)
|
||||
continue;
|
||||
|
||||
if ((data[0] & 0xffff0000) >> 16 == opcode_3d->opcode) {
|
||||
unsigned int i;
|
||||
len = 1;
|
||||
|
|
@ -3434,6 +3447,21 @@ drm_intel_decode_context_alloc(uint32_t devid)
|
|||
ctx->devid = devid;
|
||||
ctx->out = stdout;
|
||||
|
||||
if (IS_GEN7(devid))
|
||||
ctx->gen = 7;
|
||||
else if (IS_GEN6(devid))
|
||||
ctx->gen = 6;
|
||||
else if (IS_GEN5(devid))
|
||||
ctx->gen = 5;
|
||||
else if (IS_GEN4(devid))
|
||||
ctx->gen = 4;
|
||||
else if (IS_9XX(devid))
|
||||
ctx->gen = 3;
|
||||
else {
|
||||
assert(IS_GEN2(devid));
|
||||
ctx->gen = 2;
|
||||
}
|
||||
|
||||
return ctx;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue