summaryrefslogtreecommitdiffstats
path: root/src/gallium/auxiliary/draw/draw_llvm.h
diff options
context:
space:
mode:
authorJosé Fonseca <jfonseca@vmware.com>2012-12-04 14:52:44 +0000
committerJosé Fonseca <jfonseca@vmware.com>2012-12-07 15:03:07 +0000
commit1d35f77228ad540a551a8e09e062b764a6e31f5e (patch)
treea9128d5c57a248616077b3977ef88b5e45e33b6d /src/gallium/auxiliary/draw/draw_llvm.h
parent35840ab189595b817fa8b1a1df8cc92474a7c38d (diff)
downloadexternal_mesa3d-1d35f77228ad540a551a8e09e062b764a6e31f5e.zip
external_mesa3d-1d35f77228ad540a551a8e09e062b764a6e31f5e.tar.gz
external_mesa3d-1d35f77228ad540a551a8e09e062b764a6e31f5e.tar.bz2
gallivm,llvmpipe,draw: Support multiple constant buffers.
Support 16 (defined in LP_MAX_TGSI_CONST_BUFFERS) as opposed to 32 (as defined by PIPE_MAX_CONSTANT_BUFFERS) because that would make the jit context become unnecessarily large. v2: Bump limit from 4 to 16 to cover ARB_uniform_buffer_object needs, per Dave Airlie. Reviewed-by: Brian Paul <brianp@vmware.com>
Diffstat (limited to 'src/gallium/auxiliary/draw/draw_llvm.h')
-rw-r--r--src/gallium/auxiliary/draw/draw_llvm.h9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/gallium/auxiliary/draw/draw_llvm.h b/src/gallium/auxiliary/draw/draw_llvm.h
index d7a630e..bd11886 100644
--- a/src/gallium/auxiliary/draw/draw_llvm.h
+++ b/src/gallium/auxiliary/draw/draw_llvm.h
@@ -32,6 +32,7 @@
#include "draw/draw_vs.h"
#include "gallivm/lp_bld_sample.h"
+#include "gallivm/lp_bld_limits.h"
#include "pipe/p_context.h"
#include "util/u_simple_list.h"
@@ -94,8 +95,8 @@ enum {
*/
struct draw_jit_context
{
- const float *vs_constants;
- const float *gs_constants;
+ const float *vs_constants[LP_MAX_TGSI_CONST_BUFFERS];
+ const float *gs_constants[LP_MAX_TGSI_CONST_BUFFERS];
float (*planes) [DRAW_TOTAL_CLIP_PLANES][4];
float *viewport;
@@ -104,10 +105,10 @@ struct draw_jit_context
#define draw_jit_context_vs_constants(_gallivm, _ptr) \
- lp_build_struct_get(_gallivm, _ptr, 0, "vs_constants")
+ lp_build_struct_get_ptr(_gallivm, _ptr, 0, "vs_constants")
#define draw_jit_context_gs_constants(_gallivm, _ptr) \
- lp_build_struct_get(_gallivm, _ptr, 1, "gs_constants")
+ lp_build_struct_get_ptr(_gallivm, _ptr, 1, "gs_constants")
#define draw_jit_context_planes(_gallivm, _ptr) \
lp_build_struct_get(_gallivm, _ptr, 2, "planes")