Mesa (master): r300g: use the dummy FS shader for shaders with zero instructions

Marek Olšák mareko at kemper.freedesktop.org
Mon Apr 26 05:22:51 UTC 2010


Module: Mesa
Branch: master
Commit: 537d117ed57734d034560cc64fe1bed65a6375e3
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=537d117ed57734d034560cc64fe1bed65a6375e3

Author: Marek Olšák <maraeo at gmail.com>
Date:   Mon Apr 26 04:52:28 2010 +0200

r300g: use the dummy FS shader for shaders with zero instructions

---

 src/gallium/drivers/r300/r300_fs.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/src/gallium/drivers/r300/r300_fs.c b/src/gallium/drivers/r300/r300_fs.c
index 4d61f63..88303f0 100644
--- a/src/gallium/drivers/r300/r300_fs.c
+++ b/src/gallium/drivers/r300/r300_fs.c
@@ -275,6 +275,14 @@ static void r300_translate_fragment_shader(
     /* Invoke the compiler */
     r3xx_compile_fragment_program(&compiler);
 
+    /* Shaders with zero instructions are invalid,
+     * use the dummy shader instead. */
+    if (shader->code.code.r500.inst_end == -1) {
+        rc_destroy(&compiler.Base);
+        r300_dummy_fragment_shader(r300, shader);
+        return;
+    }
+
     if (compiler.Base.Error) {
         fprintf(stderr, "r300 FP: Compiler Error:\n%sUsing a dummy shader"
                 " instead.\n", compiler.Base.ErrorMsg);




More information about the mesa-commit mailing list