nv50/nvc0: Build codegen in nv50.
authorJohannes Obermayr <johannesobermayr@gmx.de>
Sat, 12 Jan 2013 11:55:08 +0000 (12:55 +0100)
committerChristoph Bumiller <e0425955@student.tuwien.ac.at>
Sat, 12 Jan 2013 16:14:04 +0000 (17:14 +0100)
This is required to make libnv50 independent of libnvc0.

src/gallium/drivers/nv50/Makefile.sources
src/gallium/drivers/nv50/nv50_miptree.c
src/gallium/drivers/nv50/nv50_resource.h
src/gallium/drivers/nvc0/Makefile.sources
src/gallium/drivers/nvc0/codegen/nv50_ir_lowering_nvc0.cpp
src/gallium/drivers/nvc0/nvc0_miptree.c

index c112e82e9c0b20791d5186a27b6fe38bce067c3d..10925704f84ca58d23a3454957b7c0daf92d4b92 100644 (file)
@@ -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)
index fc9d7f360d0c0499e156bc7e9f8d94f2c2beb009..7883edbe75e52f2a998dfe3937875b46788121c3 100644 (file)
 #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
index 480895570827b055e3ae35527e5286c6b422f95e..a2bc9803fbe6c8d8d74dc68b9fbd3e3d4d8be78b 100644 (file)
@@ -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;
index 82504bf9849d20edfa43b3ec29e38f175812dff9..d0e213b40af014e737824031a4cfbce67bf5a4f4 100644 (file)
@@ -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
index 749ace5d81cd7d0d64327b14bda5c0645815eadd..c5a7772ed9fb180ff1583492ce170678ede5322e 100644 (file)
@@ -1096,7 +1096,7 @@ NVC0LoweringPass::visit(Instruction *i)
       break;
    default:
       break;
-   }   
+   }
    return true;
 }
 
index b63f196eecdc4b9f317fc719b0358c59adc4b203..dd415d0ef6ca6a8e4f2aca5198d6011f34362f20 100644 (file)
 #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