mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 04:58:05 +02:00
nv50/nvc0: Build codegen in nv50.
This is required to make libnv50 independent of libnvc0.
This commit is contained in:
parent
09a00a141f
commit
6bca283ad5
6 changed files with 45 additions and 36 deletions
|
|
@ -15,7 +15,7 @@ C_SOURCES := \
|
|||
nv50_push.c \
|
||||
nv50_query.c
|
||||
|
||||
CPP_SOURCES := \
|
||||
CODEGEN_NV50_SOURCES := \
|
||||
codegen/nv50_ir.cpp \
|
||||
codegen/nv50_ir_bb.cpp \
|
||||
codegen/nv50_ir_build_util.cpp \
|
||||
|
|
@ -30,3 +30,13 @@ CPP_SOURCES := \
|
|||
codegen/nv50_ir_target.cpp \
|
||||
codegen/nv50_ir_target_nv50.cpp \
|
||||
codegen/nv50_ir_util.cpp
|
||||
|
||||
CODEGEN_NVC0_SOURCES := \
|
||||
$(top_srcdir)/src/gallium/drivers/nvc0/codegen/nv50_ir_emit_gk110.cpp \
|
||||
$(top_srcdir)/src/gallium/drivers/nvc0/codegen/nv50_ir_emit_nvc0.cpp \
|
||||
$(top_srcdir)/src/gallium/drivers/nvc0/codegen/nv50_ir_lowering_nvc0.cpp \
|
||||
$(top_srcdir)/src/gallium/drivers/nvc0/codegen/nv50_ir_target_nvc0.cpp
|
||||
|
||||
CPP_SOURCES := \
|
||||
$(CODEGEN_NV50_SOURCES) \
|
||||
$(CODEGEN_NVC0_SOURCES)
|
||||
|
|
|
|||
|
|
@ -28,10 +28,38 @@
|
|||
#include "nv50_context.h"
|
||||
#include "nv50_resource.h"
|
||||
|
||||
static INLINE uint32_t
|
||||
uint32_t
|
||||
nv50_tex_choose_tile_dims_helper(unsigned nx, unsigned ny, unsigned nz)
|
||||
{
|
||||
uint32_t tile_mode = 0x000;
|
||||
|
||||
if (ny > 64) tile_mode = 0x040; /* height 128 tiles */
|
||||
else
|
||||
if (ny > 32) tile_mode = 0x030; /* height 64 tiles */
|
||||
else
|
||||
if (ny > 16) tile_mode = 0x020; /* height 32 tiles */
|
||||
else
|
||||
if (ny > 8) tile_mode = 0x010; /* height 16 tiles */
|
||||
|
||||
if (nz == 1)
|
||||
return tile_mode;
|
||||
else
|
||||
if (tile_mode > 0x020)
|
||||
tile_mode = 0x020;
|
||||
|
||||
if (nz > 16 && tile_mode < 0x020)
|
||||
return tile_mode | 0x500; /* depth 32 tiles */
|
||||
if (nz > 8) return tile_mode | 0x400; /* depth 16 tiles */
|
||||
if (nz > 4) return tile_mode | 0x300; /* depth 8 tiles */
|
||||
if (nz > 2) return tile_mode | 0x200; /* depth 4 tiles */
|
||||
|
||||
return tile_mode | 0x100;
|
||||
}
|
||||
|
||||
static uint32_t
|
||||
nv50_tex_choose_tile_dims(unsigned nx, unsigned ny, unsigned nz)
|
||||
{
|
||||
return nvc0_tex_choose_tile_dims(nx, ny * 2, nz);
|
||||
return nv50_tex_choose_tile_dims_helper(nx, ny * 2, nz);
|
||||
}
|
||||
|
||||
static uint32_t
|
||||
|
|
|
|||
|
|
@ -32,8 +32,7 @@ nv50_screen_init_resource_functions(struct pipe_screen *pscreen);
|
|||
#endif /* __NVC0_RESOURCE_H__ */
|
||||
|
||||
uint32_t
|
||||
nvc0_tex_choose_tile_dims(unsigned nx, unsigned ny, unsigned nz);
|
||||
|
||||
nv50_tex_choose_tile_dims_helper(unsigned nx, unsigned ny, unsigned nz);
|
||||
|
||||
struct nv50_miptree_level {
|
||||
uint32_t offset;
|
||||
|
|
|
|||
|
|
@ -14,9 +14,3 @@ C_SOURCES := \
|
|||
nvc0_program.c \
|
||||
nvc0_shader_state.c \
|
||||
nvc0_query.c
|
||||
|
||||
CPP_SOURCES := \
|
||||
codegen/nv50_ir_emit_gk110.cpp \
|
||||
codegen/nv50_ir_emit_nvc0.cpp \
|
||||
codegen/nv50_ir_lowering_nvc0.cpp \
|
||||
codegen/nv50_ir_target_nvc0.cpp
|
||||
|
|
|
|||
|
|
@ -1096,7 +1096,7 @@ NVC0LoweringPass::visit(Instruction *i)
|
|||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -28,32 +28,10 @@
|
|||
#include "nvc0_context.h"
|
||||
#include "nvc0_resource.h"
|
||||
|
||||
uint32_t
|
||||
static uint32_t
|
||||
nvc0_tex_choose_tile_dims(unsigned nx, unsigned ny, unsigned nz)
|
||||
{
|
||||
uint32_t tile_mode = 0x000;
|
||||
|
||||
if (ny > 64) tile_mode = 0x040; /* height 128 tiles */
|
||||
else
|
||||
if (ny > 32) tile_mode = 0x030; /* height 64 tiles */
|
||||
else
|
||||
if (ny > 16) tile_mode = 0x020; /* height 32 tiles */
|
||||
else
|
||||
if (ny > 8) tile_mode = 0x010; /* height 16 tiles */
|
||||
|
||||
if (nz == 1)
|
||||
return tile_mode;
|
||||
else
|
||||
if (tile_mode > 0x020)
|
||||
tile_mode = 0x020;
|
||||
|
||||
if (nz > 16 && tile_mode < 0x020)
|
||||
return tile_mode | 0x500; /* depth 32 tiles */
|
||||
if (nz > 8) return tile_mode | 0x400; /* depth 16 tiles */
|
||||
if (nz > 4) return tile_mode | 0x300; /* depth 8 tiles */
|
||||
if (nz > 2) return tile_mode | 0x200; /* depth 4 tiles */
|
||||
|
||||
return tile_mode | 0x100;
|
||||
return nv50_tex_choose_tile_dims_helper(nx, ny, nz);
|
||||
}
|
||||
|
||||
static uint32_t
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue