mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-09 08:58:02 +02:00
nvc0: reserve an area for surfaces info in the driver constbuf
To process surfaces coordinates from the codegen part, and because some information like the format is not always available (eg. when writeonly is used), we have to stick some surfaces data in the driver constbuf. This is especially true for OpenCL because we don't know the format at shader compile time. This bumps the size of each shader area from 1K to 2K. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
This commit is contained in:
parent
afa04785fa
commit
c6b3c346d1
6 changed files with 12 additions and 12 deletions
|
|
@ -206,7 +206,7 @@ nvc0_compute_validate_driverconst(struct nvc0_context *nvc0)
|
|||
struct nvc0_screen *screen = nvc0->screen;
|
||||
|
||||
BEGIN_NVC0(push, NVC0_CP(CB_SIZE), 3);
|
||||
PUSH_DATA (push, 1024);
|
||||
PUSH_DATA (push, 2048);
|
||||
PUSH_DATAh(push, screen->uniform_bo->offset + NVC0_CB_AUX_INFO(5));
|
||||
PUSH_DATA (push, screen->uniform_bo->offset + NVC0_CB_AUX_INFO(5));
|
||||
BEGIN_NVC0(push, NVC0_CP(CB_BIND), 1);
|
||||
|
|
@ -224,7 +224,7 @@ nvc0_compute_validate_buffers(struct nvc0_context *nvc0)
|
|||
int i;
|
||||
|
||||
BEGIN_NVC0(push, NVC0_CP(CB_SIZE), 3);
|
||||
PUSH_DATA (push, 1024);
|
||||
PUSH_DATA (push, 2048);
|
||||
PUSH_DATAh(push, screen->uniform_bo->offset + NVC0_CB_AUX_INFO(s));
|
||||
PUSH_DATA (push, screen->uniform_bo->offset + NVC0_CB_AUX_INFO(s));
|
||||
BEGIN_1IC0(push, NVC0_CP(CB_POS), 1 + 4 * NVC0_MAX_BUFFERS);
|
||||
|
|
|
|||
|
|
@ -101,9 +101,9 @@
|
|||
/* 6 user uniform buffers, at 64K each */
|
||||
#define NVC0_CB_USR_INFO(s) (s << 16)
|
||||
#define NVC0_CB_USR_SIZE (6 << 16)
|
||||
/* 6 driver constbuts, at 1K each */
|
||||
#define NVC0_CB_AUX_INFO(s) NVC0_CB_USR_SIZE + (s << 10)
|
||||
#define NVC0_CB_AUX_SIZE (6 << 10)
|
||||
/* 6 driver constbuts, at 2K each */
|
||||
#define NVC0_CB_AUX_INFO(s) NVC0_CB_USR_SIZE + (s << 11)
|
||||
#define NVC0_CB_AUX_SIZE (6 << 11)
|
||||
/* XXX: Figure out what this UNK data is. */
|
||||
#define NVC0_CB_AUX_UNK_INFO 0x000
|
||||
#define NVC0_CB_AUX_UNK_SIZE (8 * 4)
|
||||
|
|
|
|||
|
|
@ -961,7 +961,7 @@ nvc0_screen_create(struct nouveau_device *dev)
|
|||
/* TIC and TSC entries for each unit (nve4+ only) */
|
||||
/* auxiliary constants (6 user clip planes, base instance id) */
|
||||
BEGIN_NVC0(push, NVC0_3D(CB_SIZE), 3);
|
||||
PUSH_DATA (push, 1024);
|
||||
PUSH_DATA (push, 2048);
|
||||
PUSH_DATAh(push, screen->uniform_bo->offset + NVC0_CB_AUX_INFO(i));
|
||||
PUSH_DATA (push, screen->uniform_bo->offset + NVC0_CB_AUX_INFO(i));
|
||||
BEGIN_NVC0(push, NVC0_3D(CB_BIND(i)), 1);
|
||||
|
|
|
|||
|
|
@ -198,7 +198,7 @@ nvc0_validate_fb(struct nvc0_context *nvc0)
|
|||
|
||||
ms = 1 << ms_mode;
|
||||
BEGIN_NVC0(push, NVC0_3D(CB_SIZE), 3);
|
||||
PUSH_DATA (push, 1024);
|
||||
PUSH_DATA (push, 2048);
|
||||
PUSH_DATAh(push, screen->uniform_bo->offset + NVC0_CB_AUX_INFO(4));
|
||||
PUSH_DATA (push, screen->uniform_bo->offset + NVC0_CB_AUX_INFO(4));
|
||||
BEGIN_1IC0(push, NVC0_3D(CB_POS), 1 + 2 * ms);
|
||||
|
|
@ -332,7 +332,7 @@ nvc0_upload_uclip_planes(struct nvc0_context *nvc0, unsigned s)
|
|||
struct nvc0_screen *screen = nvc0->screen;
|
||||
|
||||
BEGIN_NVC0(push, NVC0_3D(CB_SIZE), 3);
|
||||
PUSH_DATA (push, 1024);
|
||||
PUSH_DATA (push, 2048);
|
||||
PUSH_DATAh(push, screen->uniform_bo->offset + NVC0_CB_AUX_INFO(s));
|
||||
PUSH_DATA (push, screen->uniform_bo->offset + NVC0_CB_AUX_INFO(s));
|
||||
BEGIN_1IC0(push, NVC0_3D(CB_POS), PIPE_MAX_CLIP_PLANES * 4 + 1);
|
||||
|
|
@ -499,7 +499,7 @@ nvc0_validate_buffers(struct nvc0_context *nvc0)
|
|||
|
||||
for (s = 0; s < 5; s++) {
|
||||
BEGIN_NVC0(push, NVC0_3D(CB_SIZE), 3);
|
||||
PUSH_DATA (push, 1024);
|
||||
PUSH_DATA (push, 2048);
|
||||
PUSH_DATAh(push, screen->uniform_bo->offset + NVC0_CB_AUX_INFO(s));
|
||||
PUSH_DATA (push, screen->uniform_bo->offset + NVC0_CB_AUX_INFO(s));
|
||||
BEGIN_1IC0(push, NVC0_3D(CB_POS), 1 + 4 * NVC0_MAX_BUFFERS);
|
||||
|
|
@ -566,7 +566,7 @@ nvc0_validate_driverconst(struct nvc0_context *nvc0)
|
|||
|
||||
for (i = 0; i < 5; ++i) {
|
||||
BEGIN_NVC0(push, NVC0_3D(CB_SIZE), 3);
|
||||
PUSH_DATA (push, 1024);
|
||||
PUSH_DATA (push, 2048);
|
||||
PUSH_DATAh(push, screen->uniform_bo->offset + NVC0_CB_AUX_INFO(i));
|
||||
PUSH_DATA (push, screen->uniform_bo->offset + NVC0_CB_AUX_INFO(i));
|
||||
BEGIN_NVC0(push, NVC0_3D(CB_BIND(i)), 1);
|
||||
|
|
|
|||
|
|
@ -721,7 +721,7 @@ nve4_set_tex_handles(struct nvc0_context *nvc0)
|
|||
if (!dirty)
|
||||
continue;
|
||||
BEGIN_NVC0(push, NVC0_3D(CB_SIZE), 3);
|
||||
PUSH_DATA (push, 1024);
|
||||
PUSH_DATA (push, 2048);
|
||||
PUSH_DATAh(push, screen->uniform_bo->offset + NVC0_CB_AUX_INFO(s));
|
||||
PUSH_DATA (push, screen->uniform_bo->offset + NVC0_CB_AUX_INFO(s));
|
||||
do {
|
||||
|
|
|
|||
|
|
@ -543,7 +543,7 @@ nve4_compute_setup_launch_desc(struct nvc0_context *nvc0,
|
|||
NVC0_CB_USR_INFO(5), 1 << 16);
|
||||
}
|
||||
nve4_cp_launch_desc_set_cb(desc, 7, screen->uniform_bo,
|
||||
NVC0_CB_AUX_INFO(5), 1 << 10);
|
||||
NVC0_CB_AUX_INFO(5), 1 << 11);
|
||||
}
|
||||
|
||||
static inline struct nve4_cp_launch_desc *
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue