56 lines
1.1 KiB
C
56 lines
1.1 KiB
C
/* SPDX-License-Identifier: MIT */
|
|
#ifndef __NVKM_RM_GR_H__
|
|
#define __NVKM_RM_GR_H__
|
|
#include "engine.h"
|
|
|
|
#include <core/object.h>
|
|
#include <engine/gr.h>
|
|
|
|
#define R515_GR_MAX_CTXBUFS 9
|
|
|
|
struct r535_gr_chan {
|
|
struct nvkm_object object;
|
|
struct r535_gr *gr;
|
|
|
|
struct nvkm_vmm *vmm;
|
|
struct nvkm_chan *chan;
|
|
|
|
struct nvkm_memory *mem[R515_GR_MAX_CTXBUFS];
|
|
struct nvkm_vma *vma[R515_GR_MAX_CTXBUFS];
|
|
};
|
|
|
|
struct r535_gr {
|
|
struct nvkm_gr base;
|
|
|
|
struct {
|
|
u16 bufferId;
|
|
u32 size;
|
|
u8 page;
|
|
u8 align;
|
|
bool global;
|
|
bool init;
|
|
bool ro;
|
|
} ctxbuf[R515_GR_MAX_CTXBUFS];
|
|
int ctxbuf_nr;
|
|
|
|
struct nvkm_memory *ctxbuf_mem[R515_GR_MAX_CTXBUFS];
|
|
|
|
struct {
|
|
int chid;
|
|
struct nvkm_memory *inst;
|
|
struct nvkm_vmm *vmm;
|
|
struct nvkm_gsp_object chan;
|
|
struct nvkm_gsp_object threed;
|
|
struct {
|
|
struct nvkm_memory *mem[R515_GR_MAX_CTXBUFS];
|
|
struct nvkm_vma *vma[R515_GR_MAX_CTXBUFS];
|
|
} ctxbuf;
|
|
bool enabled;
|
|
} scrubber;
|
|
};
|
|
|
|
struct NV2080_CTRL_INTERNAL_ENGINE_CONTEXT_BUFFER_INFO;
|
|
void r535_gr_get_ctxbuf_info(struct r535_gr *, int i,
|
|
struct NV2080_CTRL_INTERNAL_ENGINE_CONTEXT_BUFFER_INFO *);
|
|
#endif
|