diff options
| author | Brian Paul <brianp@vmware.com> | 2009-10-05 14:42:08 -0600 |
|---|---|---|
| committer | Brian Paul <brianp@vmware.com> | 2009-10-05 14:42:08 -0600 |
| commit | 55770d09c18c4d33403abb97dfef4f897efbbe2a (patch) | |
| tree | 3f3cb2ea42c511c11e134c2d414367df82268cea /src/mesa/drivers/dri/r300/r300_fragprog_common.c | |
| parent | f00da2a3ff59c1a7104ac25a1c6eba5a6050ad68 (diff) | |
| parent | 79892e7976fbb91ae426f5868d5f453e977c1f17 (diff) | |
Merge branch 'mesa_7_6_branch'
Conflicts:
src/gallium/auxiliary/util/u_cpu_detect.c
Diffstat (limited to 'src/mesa/drivers/dri/r300/r300_fragprog_common.c')
| -rw-r--r-- | src/mesa/drivers/dri/r300/r300_fragprog_common.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/r300/r300_fragprog_common.c b/src/mesa/drivers/dri/r300/r300_fragprog_common.c index 0bdc90b4a8..70c9252894 100644 --- a/src/mesa/drivers/dri/r300/r300_fragprog_common.c +++ b/src/mesa/drivers/dri/r300/r300_fragprog_common.c @@ -239,6 +239,19 @@ static void translate_fragment_program(GLcontext *ctx, struct r300_fragment_prog rewriteFog(&compiler, fp); r3xx_compile_fragment_program(&compiler); + + if (compiler.is_r500) { + /* We need to support the non-KMS DRM interface, which + * artificially limits the number of instructions and + * constants which are available to us. + * + * See also the comment in r300_context.c where we + * set the MAX_NATIVE_xxx values. + */ + if (fp->code.code.r500.inst_end >= 255 || fp->code.constants.Count > 255) + rc_error(&compiler.Base, "Program is too big (upgrade to r300g to avoid this limitation).\n"); + } + fp->error = compiler.Base.Error; fp->InputsRead = compiler.Base.Program.InputsRead; |
