summaryrefslogtreecommitdiff
path: root/src/gallium/auxiliary/draw/draw_pt_vcache.c
diff options
context:
space:
mode:
authorKeith Whitwell <keith@tungstengraphics.com>2008-06-02 12:59:16 +0100
committerKeith Whitwell <keith@tungstengraphics.com>2008-06-04 11:25:54 +0100
commit0a4aea0e86a897d9afb9f2a0ec27f03faf8f1b21 (patch)
tree9873d3bcf68cf71e2e5abc7b60f911ad73cc5f90 /src/gallium/auxiliary/draw/draw_pt_vcache.c
parentc218b8c6c6593f434a749bf67ad976007e6eef61 (diff)
draw: respect driver's max vertex buffer size
Diffstat (limited to 'src/gallium/auxiliary/draw/draw_pt_vcache.c')
-rw-r--r--src/gallium/auxiliary/draw/draw_pt_vcache.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/gallium/auxiliary/draw/draw_pt_vcache.c b/src/gallium/auxiliary/draw/draw_pt_vcache.c
index ad86ab4292..2eafe270bc 100644
--- a/src/gallium/auxiliary/draw/draw_pt_vcache.c
+++ b/src/gallium/auxiliary/draw/draw_pt_vcache.c
@@ -36,8 +36,8 @@
#include "draw/draw_pt.h"
-#define CACHE_MAX 1024
-#define FETCH_MAX 4096
+#define CACHE_MAX 256
+#define FETCH_MAX 256
#define DRAW_MAX (16*1024)
struct vcache_frontend {
@@ -52,6 +52,7 @@ struct vcache_frontend {
unsigned draw_count;
unsigned fetch_count;
+ unsigned fetch_max;
struct draw_pt_middle_end *middle;
@@ -296,10 +297,12 @@ static void vcache_check_run( struct draw_pt_front_end *frontend,
ushort *storage = NULL;
- if (0) debug_printf("fetch_count %d draw_count %d\n", fetch_count, draw_count);
+ if (0) debug_printf("fetch_count %d fetch_max %d draw_count %d\n", fetch_count,
+ vcache->fetch_max,
+ draw_count);
if (max_index == 0xffffffff ||
- fetch_count >= FETCH_MAX ||
+ fetch_count >= vcache->fetch_max ||
fetch_count > draw_count) {
if (0) debug_printf("fail\n");
goto fail;
@@ -409,7 +412,7 @@ static void vcache_prepare( struct draw_pt_front_end *frontend,
vcache->output_prim = draw_pt_reduced_prim(prim);
vcache->middle = middle;
- middle->prepare( middle, vcache->output_prim, opt );
+ middle->prepare( middle, vcache->output_prim, opt, &vcache->fetch_max );
}