summaryrefslogtreecommitdiffstats
path: root/src/gallium/auxiliary
diff options
context:
space:
mode:
authorChristian König <[email protected]>2011-04-10 20:49:18 +0200
committerChristian König <[email protected]>2011-04-10 20:49:18 +0200
commit871d6d49c931739d94e646f2b0c3eb5db8a03d69 (patch)
treec401185e348af188b7fe2effaa238f40a0bab22e /src/gallium/auxiliary
parentb6af6ba6c0e62fc91adb350d882bab69dde1ef7a (diff)
[g3dvl] autoconfigure nr of idct render targets
Diffstat (limited to 'src/gallium/auxiliary')
-rw-r--r--src/gallium/auxiliary/vl/vl_mpeg12_decoder.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/gallium/auxiliary/vl/vl_mpeg12_decoder.c b/src/gallium/auxiliary/vl/vl_mpeg12_decoder.c
index ce5d5099106..b905f49fd03 100644
--- a/src/gallium/auxiliary/vl/vl_mpeg12_decoder.c
+++ b/src/gallium/auxiliary/vl/vl_mpeg12_decoder.c
@@ -536,7 +536,10 @@ init_idct(struct vl_mpeg12_decoder *dec, unsigned buffer_width, unsigned buffer_
unsigned chroma_width, chroma_height, chroma_blocks_x, chroma_blocks_y;
struct pipe_sampler_view *idct_matrix;
- dec->nr_of_idct_render_targets = 4;
+ dec->nr_of_idct_render_targets = dec->pipe->screen->get_param(dec->pipe->screen, PIPE_CAP_MAX_RENDER_TARGETS);
+
+ // more than 4 render targets usually doesn't makes any seens
+ dec->nr_of_idct_render_targets = MIN2(dec->nr_of_idct_render_targets, 4);
if (!(idct_matrix = vl_idct_upload_matrix(dec->pipe, sqrt(SCALE_FACTOR_16_TO_9))))
goto error_idct_matrix;