From 4bc39c58eb7fdf3a0be62bed666998a0d1789dcf Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Fri, 26 Sep 2008 07:40:45 -0600 Subject: mesa: fix assertion in _mesa_reference_program() --- src/mesa/shader/program.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/mesa/shader') diff --git a/src/mesa/shader/program.c b/src/mesa/shader/program.c index b3618641e5..738891a029 100644 --- a/src/mesa/shader/program.c +++ b/src/mesa/shader/program.c @@ -372,7 +372,11 @@ _mesa_reference_program(GLcontext *ctx, assert(ptr); if (*ptr && prog) { /* sanity check */ - ASSERT((*ptr)->Target == prog->Target); + if ((*ptr)->Target == GL_VERTEX_PROGRAM_ARB) + ASSERT(prog->Target == GL_VERTEX_PROGRAM_ARB); + else if ((*ptr)->Target == GL_FRAGMENT_PROGRAM_ARB) + ASSERT(prog->Target == GL_FRAGMENT_PROGRAM_ARB || + prog->Target == GL_FRAGMENT_PROGRAM_NV); } if (*ptr == prog) { return; /* no change */ -- cgit v1.2.3 From fc13269b820a842b401b7a7a4aed098e59b25b91 Mon Sep 17 00:00:00 2001 From: Jouk Jansen Date: Mon, 29 Sep 2008 08:35:05 -0600 Subject: mesa: asst updates for VMS --- src/mesa/drivers/common/descrip.mms | 5 +++-- src/mesa/glapi/descrip.mms | 10 ++++++---- src/mesa/main/descrip.mms | 32 +++++++++++++++++++++++++++++++- src/mesa/shader/descrip.mms | 6 ++++-- src/mesa/shader/grammar/descrip.mms | 5 +++-- src/mesa/tnl/descrip.mms | 7 ++++--- 6 files changed, 51 insertions(+), 14 deletions(-) (limited to 'src/mesa/shader') diff --git a/src/mesa/drivers/common/descrip.mms b/src/mesa/drivers/common/descrip.mms index 99a2ae6c37..d5bbc69dfd 100644 --- a/src/mesa/drivers/common/descrip.mms +++ b/src/mesa/drivers/common/descrip.mms @@ -1,6 +1,6 @@ # Makefile for core library for VMS # contributed by Jouk Jansen joukj@hrem.nano.tudelft.nl -# Last revision : 3 October 2007 +# Last revision : 29 September 2008 .first define gl [----.include.gl] @@ -19,7 +19,8 @@ VPATH = RCS INCDIR = [----.include],[--.main],[--.glapi],[--.shader] LIBDIR = [----.lib] -CFLAGS = /include=($(INCDIR),[])/define=(PTHREADS=1)/name=(as_is,short)/float=ieee/ieee=denorm +CFLAGS = /include=($(INCDIR),[])/define=(PTHREADS=1)/name=(as_is,short)\ + /float=ieee/ieee=denorm/warn=disable=(PTRMISMATCH) SOURCES = driverfuncs.c diff --git a/src/mesa/glapi/descrip.mms b/src/mesa/glapi/descrip.mms index f17e5329b6..ee96baa6fc 100644 --- a/src/mesa/glapi/descrip.mms +++ b/src/mesa/glapi/descrip.mms @@ -1,9 +1,10 @@ # Makefile for core library for VMS -# contributed by Jouk Jansen joukj@hrem.stm.tudelft.nl -# Last revision : 16 June 2003 +# contributed by Jouk Jansen joukj@hrem.nano.tudelft.nl +# Last revision : 29 September 2008 .first define gl [---.include.gl] + define main [-.main] .include [---]mms-config. @@ -15,9 +16,9 @@ INCDIR = [---.include],[-.main] LIBDIR = [---.lib] CFLAGS = /include=($(INCDIR),[])/define=(PTHREADS=1)/name=(as_is,short)/float=ieee/ieee=denorm -SOURCES = glapi.c glthread.c +SOURCES = glapi.c glthread.c glapi_getproc.c -OBJECTS = glapi.obj,glthread.obj +OBJECTS = glapi.obj,glthread.obj,glapi_getproc.obj ##### RULES ##### @@ -35,3 +36,4 @@ clean : glapi.obj : glapi.c glthread.obj : glthread.c +glapi_getproc.obj : glapi_getproc.c diff --git a/src/mesa/main/descrip.mms b/src/mesa/main/descrip.mms index 3ef215f47f..e49ec65d42 100644 --- a/src/mesa/main/descrip.mms +++ b/src/mesa/main/descrip.mms @@ -1,6 +1,6 @@ # Makefile for core library for VMS # contributed by Jouk Jansen joukj@hrem.nano.tudelft.nl -# Last revision : 2 October 2007 +# Last revision : 29 September 2008 .first define gl [---.include.gl] @@ -21,6 +21,7 @@ CFLAGS = /include=($(INCDIR),[])/define=(PTHREADS=1)/name=(as_is,short)/float=ie SOURCES =accum.c \ api_arrayelt.c \ + api_exec.c \ api_loopback.c \ api_noop.c \ api_validate.c \ @@ -29,6 +30,7 @@ SOURCES =accum.c \ blend.c \ bufferobj.c \ buffers.c \ + clear.c \ clip.c \ colortab.c \ context.c \ @@ -46,6 +48,7 @@ SOURCES =accum.c \ extensions.c \ fbobject.c \ feedback.c \ + ffvertex_prog.c \ fog.c \ framebuffer.c \ get.c \ @@ -60,22 +63,29 @@ SOURCES =accum.c \ matrix.c \ mipmap.c \ mm.c \ + multisample.c \ pixel.c \ + pixelstore.c \ points.c \ polygon.c \ rastpos.c \ rbadaptors.c \ + readpix.c \ renderbuffer.c \ + scissor.c \ shaders.c \ state.c \ stencil.c \ texcompress.c \ texcompress_fxt1.c \ texcompress_s3tc.c \ + texenv.c \ texenvprogram.c \ texformat.c \ + texgen.c \ teximage.c \ texobj.c \ + texparam.c \ texrender.c \ texstate.c \ texstore.c \ @@ -86,6 +96,7 @@ SOURCES =accum.c \ OBJECTS=accum.obj,\ api_arrayelt.obj,\ +api_exec.obj,\ api_loopback.obj,\ api_noop.obj,\ api_validate.obj,\ @@ -94,6 +105,7 @@ attrib.obj,\ blend.obj,\ bufferobj.obj,\ buffers.obj,\ +clear.obj,\ clip.obj,\ colortab.obj,\ context.obj,\ @@ -111,6 +123,7 @@ execmem.obj,\ extensions.obj,\ fbobject.obj,\ feedback.obj,\ +ffvertex_prog.obj,\ fog.obj,\ framebuffer.obj,\ get.obj,\ @@ -125,21 +138,28 @@ lines.obj,\ matrix.obj,\ mipmap.obj,\ mm.obj,\ +multisample.obj,\ pixel.obj,\ +pixelstore.obj,\ points.obj,\ polygon.obj,\ rastpos.obj,\ +readpix.obj,\ renderbuffer.obj,\ +scissor.obj,\ shaders.obj,\ state.obj,\ stencil.obj,\ texcompress.obj,\ texcompress_fxt1.obj,\ texcompress_s3tc.obj,\ +texenv.obj,\ texenvprogram.obj,\ texformat.obj,\ +texgen.obj,\ teximage.obj,\ texobj.obj,\ +texparam.obj,\ texrender.obj,\ texstate.obj,\ texstore.obj,\ @@ -226,3 +246,13 @@ vtxfmt.obj : vtxfmt.c shaders.obj : shaders.c queryobj.obj : queryobj.c rbadaptors.obj : rbadaptors.c +clear.obj : clear.c +multisample.obj : multisample.c +scissor.obj : scissor.c +texenv.obj : texenv.c +texgen.obj : texgen.c +texparam.obj : texparam.c +readpix.obj : readpix.c +ffvertex_prog.obj : ffvertex_prog.c +api_exec.obj : api_exec.c +pixelstore.obj : pixelstore.c diff --git a/src/mesa/shader/descrip.mms b/src/mesa/shader/descrip.mms index bdac946efe..19bafd4830 100644 --- a/src/mesa/shader/descrip.mms +++ b/src/mesa/shader/descrip.mms @@ -1,6 +1,6 @@ # Makefile for core library for VMS # contributed by Jouk Jansen joukj@hrem.nano.tudelft.nl -# Last revision : 27 May 2008 +# Last revision : 29 September 2008 .first define gl [---.include.gl] define math [-.math] @@ -34,6 +34,7 @@ SOURCES = \ prog_instruction.c \ prog_parameter.c \ prog_print.c \ + prog_cache.c \ prog_statevars.c \ shader_api.c prog_uniform.c @@ -52,7 +53,7 @@ OBJECTS = \ prog_parameter.obj,\ prog_print.obj,\ prog_statevars.obj,\ - shader_api.obj,prog_uniform.obj + shader_api.obj,prog_uniform.obj,prog_cache.obj ##### RULES ##### @@ -91,3 +92,4 @@ prog_print.obj : prog_print.c prog_statevars.obj : prog_statevars.c shader_api.obj : shader_api.c prog_uniform.obj : prog_uniform.c +prog_cache.obj : prog_cache.c diff --git a/src/mesa/shader/grammar/descrip.mms b/src/mesa/shader/grammar/descrip.mms index f7fbee96bc..6976b70d6a 100644 --- a/src/mesa/shader/grammar/descrip.mms +++ b/src/mesa/shader/grammar/descrip.mms @@ -1,12 +1,13 @@ # Makefile for core library for VMS -# contributed by Jouk Jansen joukj@hrem.stm.tudelft.nl -# Last revision : 1 June 2005 +# contributed by Jouk Jansen joukj@hrem.nano.tudelft.nl +# Last revision : 29 September 2008 .first define gl [----.include.gl] define math [--.math] define swrast [--.swrast] define array_cache [--.array_cache] + define main [--.main] .include [----]mms-config. diff --git a/src/mesa/tnl/descrip.mms b/src/mesa/tnl/descrip.mms index f77f672dc8..25dd1aecb1 100644 --- a/src/mesa/tnl/descrip.mms +++ b/src/mesa/tnl/descrip.mms @@ -1,6 +1,6 @@ # Makefile for core library for VMS # contributed by Jouk Jansen joukj@hrem.nano.tudelft.nl -# Last revision : 30 November 2007 +# Last revision : 39 September 2008 .first define gl [---.include.gl] @@ -27,13 +27,13 @@ SOURCES = t_context.c t_draw.c \ t_pipeline.c t_vb_fog.c \ t_vb_light.c t_vb_normals.c t_vb_points.c t_vb_program.c \ t_vb_render.c t_vb_texgen.c t_vb_texmat.c t_vb_vertex.c \ - t_vertex.c \ + t_vertex.c t_rasterpos.c\ t_vertex_generic.c t_vp_build.c OBJECTS = t_context.obj,t_draw.obj,\ t_pipeline.obj,t_vb_fog.obj,t_vb_light.obj,t_vb_normals.obj,\ t_vb_points.obj,t_vb_program.obj,t_vb_render.obj,t_vb_texgen.obj,\ - t_vb_texmat.obj,t_vb_vertex.obj,\ + t_vb_texmat.obj,t_vb_vertex.obj,t_rasterpos.obj,\ t_vertex.obj,t_vertex_generic.obj,\ t_vp_build.obj @@ -65,3 +65,4 @@ t_vb_vertex.obj : t_vb_vertex.c t_vertex.obj : t_vertex.c t_vertex_generic.obj : t_vertex_generic.c t_vp_build.obj : t_vp_build.c +t_rasterpos.obj : t_rasterpos.c -- cgit v1.2.3 From d806d451e660bb582c04947ae3bd8b95173e8fd4 Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Mon, 29 Sep 2008 12:18:06 -0700 Subject: GLSL: AttachShader returns INVALID_OPERATION for repeated attach The GL_ARB_shader_objects spec says that glAttachShaderARB is supposed to return GL_INVALID_OPERATION if a shader is attached to a program where it is already attached. _mesa_attach_shader perviously returned without error in this case. --- src/mesa/shader/shader_api.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src/mesa/shader') diff --git a/src/mesa/shader/shader_api.c b/src/mesa/shader/shader_api.c index 3c530d1727..3ab590351a 100644 --- a/src/mesa/shader/shader_api.c +++ b/src/mesa/shader/shader_api.c @@ -455,7 +455,13 @@ _mesa_attach_shader(GLcontext *ctx, GLuint program, GLuint shader) n = shProg->NumShaders; for (i = 0; i < n; i++) { if (shProg->Shaders[i] == sh) { - /* already attached */ + /* The shader is already attched to this program. The + * GL_ARB_shader_objects spec says: + * + * "The error INVALID_OPERATION is generated by AttachObjectARB + * if is already attached to ." + */ + _mesa_error(ctx, GL_INVALID_OPERATION, "glAttachShader"); return; } } -- cgit v1.2.3 From 905d8e0742d200558677dac01a838e95877f7b5e Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Mon, 29 Sep 2008 12:27:00 -0700 Subject: GLSL: Implement _mesa_get_handle Implementing _mesa_get_handle in using glGetIntegerv(GL_CURRENT_PROGRAM, ...) allows glGetHandleARB to work. --- src/mesa/shader/shader_api.c | 25 ++++++++----------------- 1 file changed, 8 insertions(+), 17 deletions(-) (limited to 'src/mesa/shader') diff --git a/src/mesa/shader/shader_api.c b/src/mesa/shader/shader_api.c index 3ab590351a..504d769323 100644 --- a/src/mesa/shader/shader_api.c +++ b/src/mesa/shader/shader_api.c @@ -47,7 +47,7 @@ #include "shader/shader_api.h" #include "shader/slang/slang_compile.h" #include "shader/slang/slang_link.h" - +#include "glapi/dispatch.h" #ifndef GL_PROGRAM_BINARY_LENGTH_OES @@ -925,24 +925,15 @@ _mesa_get_attached_shaders(GLcontext *ctx, GLuint program, GLsizei maxCount, static GLuint _mesa_get_handle(GLcontext *ctx, GLenum pname) { -#if 0 - GET_CURRENT_CONTEXT(ctx); - - switch (pname) { - case GL_PROGRAM_OBJECT_ARB: - { - struct gl2_program_intf **pro = ctx->Shader.CurrentProgram; - - if (pro != NULL) - return (**pro)._container._generic. - GetName((struct gl2_generic_intf **) (pro)); - } - break; - default: + GLint handle = 0; + + if (pname == GL_PROGRAM_OBJECT_ARB) { + CALL_GetIntegerv(ctx->Exec, (GL_CURRENT_PROGRAM, &handle)); + } else { _mesa_error(ctx, GL_INVALID_ENUM, "glGetHandleARB"); } -#endif - return 0; + + return handle; } -- cgit v1.2.3 From f8baad2d255c77c47dddeddcaf719e163e9556fb Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Mon, 6 Oct 2008 12:29:29 -0600 Subject: mesa: set FRAG_BIT_FOGC bit in InputsUsed if FogOption!=GL_NONE --- src/mesa/shader/arbprogparse.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/mesa/shader') diff --git a/src/mesa/shader/arbprogparse.c b/src/mesa/shader/arbprogparse.c index 8ce5348c09..39988b5fca 100644 --- a/src/mesa/shader/arbprogparse.c +++ b/src/mesa/shader/arbprogparse.c @@ -3863,6 +3863,9 @@ _mesa_parse_arb_fragment_program(GLcontext* ctx, GLenum target, program->FogOption = ap.FogOption; program->UsesKill = ap.UsesKill; + if (program->FogOption) + program->Base.InputsRead |= FRAG_BIT_FOGC; + if (program->Base.Instructions) _mesa_free(program->Base.Instructions); program->Base.Instructions = ap.Base.Instructions; -- cgit v1.2.3