[Mesa-dev] [PATCH] mesa: Fix substitution of large shaders

Cody Northrop cody at lunarg.com
Thu Jun 5 10:47:17 PDT 2014


The fixed size is insufficient for shaders I'm debugging.  Rather than just
bump it up, make it dynamic.

Thanks,

-C

Signed-off-by: Cody Northrop <cody at lunarg.com>
---
 src/mesa/main/shaderapi.c | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/src/mesa/main/shaderapi.c b/src/mesa/main/shaderapi.c
index 6f84acd..e63c124 100644
--- a/src/mesa/main/shaderapi.c
+++ b/src/mesa/main/shaderapi.c
@@ -1392,7 +1392,7 @@ _mesa_LinkProgram(GLhandleARB programObj)
 static GLcharARB *
 read_shader(const char *fname)
 {
-   const int max = 50*1000;
+   int shader_size = 0;
    FILE *f = fopen(fname, "r");
    GLcharARB *buffer, *shader;
    int len;
@@ -1401,8 +1401,16 @@ read_shader(const char *fname)
       return NULL;
    }

-   buffer = malloc(max);
-   len = fread(buffer, 1, max, f);
+   /* allocate enough room for the entire shader */
+   fseek(f, 0, SEEK_END);
+   shader_size = ftell(f);
+   rewind(f);
+   assert(shader_size);
+
+   buffer = malloc(shader_size);
+   assert(buffer);
+
+   len = fread(buffer, 1, shader_size, f);
    buffer[len] = 0;

    fclose(f);
-- 
1.8.3.2
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20140605/3c26590b/attachment.html>


More information about the mesa-dev mailing list