summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/r300/r300_shader.c
AgeCommit message (Collapse)Author
2010-02-19Replace _mesa_malloc, _mesa_calloc and _mesa_free with plain libc versionsKristian Høgsberg
2010-02-04mesa: change ctx->Driver.ProgramStringNotify() to return GLbooleanBrian Paul
GL_TRUE indicates that the driver accepts the program. GL_FALSE indicates the program can't be compiled/translated by the driver for some reason (too many resources used, etc). Propogate this result up to the GL API: set GL_INVALID_OPERATION error if glProgramString() was called. Set shader program link status to GL_FALSE if glLinkProgram() was called. At this point, drivers still don't do any program checking and always return GL_TRUE.
2009-07-27r300/fragprog: Finally get rid of the duplicate program copyNicolai Hähnle
Signed-off-by: Nicolai Hähnle <nhaehnle@gmail.com>
2009-07-27r300: Allow compiler to add constants in a cleaner wayNicolai Hähnle
Adding constants is used in a number of non-native instruction rewrites, and it required us to keep copies of modified gl_programs around. This is a first step towards ending this. Signed-off-by: Nicolai Hähnle <nhaehnle@gmail.com>
2009-07-27r300: Remove faux lazy translation of vertex programsNicolai Hähnle
De facto, vertex programs were translated immediately in all situations, so let's just stop pretending that we do lazy translation. Signed-off-by: Nicolai Hähnle <nhaehnle@gmail.com>
2009-07-27r300: Remove some dependencies on additional fragment program copiesNicolai Hähnle
The copy is still needed because some program transforms add state variables or constants. Signed-off-by: Nicolai Hähnle <nhaehnle@gmail.com>
2009-07-13r300: rewrite FOGC and HPOS attribs handlingMaciej Cencora
Rewrite vertex and fragment programs so that we don't have to do any hacks on lower level.
2009-07-13r300: implement proper IsProgramNative check for vertex programsMaciej Cencora
2009-07-13r300: don't modify original vertex programMaciej Cencora
Keep the original vertex program untouched because it may be needed after some state change for generating new r300 specific vertex program.
2009-07-13r300: cache translated fragment programsMaciej Cencora
2009-04-19r300: move common fp functions to seperate fileMaciej Cencora
2009-04-19r300: merge r300/r500 fragment program structuresMaciej Cencora
2009-04-19r300: r300/r500 fp shader merge WIPMaciej Cencora
2009-04-17r300: cleanup frag prog setup a littleMaciej Cencora
Use proper fields for marking if fp is translated, and if is translated succesfully. Now if fp gets translated (even unsuccesfully) fp->translated is true. If the translation failed (i.e. because we exceeded limit of maximum texture indirections) the fp->error is set. With a little updated fallback function it prevents non native fragment programs from beeing translated with every frame (the translation would fail anyway so there's no point to try again). Also implement IsProgramNative function for GL_FRAGMENT_PROGRAM_ARB (it should give some performance boost in apps that checks if program is native and falls back to simpler shader to meet hw limits if necessary) and cleanup indentation (remove whitespaces on empty lines).
2008-06-14r300_fragprog: Refactoring and cleanupNicolai Haehnle
Refactor so that r300_pfs_compile_state "owns"/holds a pointer to r300_fragment_program instead of the other way round. This is more natural from an object orientation point of view. Move the compiled hardware state into r300_fragment_program_code, in anticipation of on-the-fly program recompilation based on external OpenGL state.
2008-05-15r500: fixup the program allocations to be the correct sizesDave Airlie
2007-09-11Fix-up #includes to remove some -I options.Brian
eg: #include "shader/program.h" and remove -I$(TOP)/src/mesa/program
2007-05-25r300: Use GL_TRUE rather than 1 for the GLboolean type.Oliver McFadden
2007-05-11r300: Corrected a small error from 37cbf38c344012f9d6e938937dac3697b73721a8.Oliver McFadden
2007-05-11r300: Removed the r300BindProgram function; mesa default does better checking.Oliver McFadden
2007-05-09r300: Fixed some more function names.Oliver McFadden
Note there might be some calls to the old function names in conditionally disabled code, but I think I've got them all.
2007-05-09r300: Last of the indent changes. :)Oliver McFadden
2007-05-09r300: Indented r300_shader.[ch].Oliver McFadden
2007-03-15r300: Fixed an unused variable warning and removed some cruft, too.Oliver McFadden
2006-11-17r300_select_vertex_shader4:Rune Petersen
Makes the vertex program output from the fragment input. It makes the driver capable of catching output-input mismatches safely. Primarily based on some of Aapo Tahkola's code.
2006-07-20Some structure renaming. Prefix vertex/fragment-related structs withBrian Paul
"gl_" to match other structs.
2006-06-08include tnl/tnl.h for _tnl_program_string()Tilman Sauerbeck
2006-06-06prevent possible program mix up with sw vps (Roland Scheidegger)Aapo Tahkola
2006-03-13Clean build.Aapo Tahkola
2006-01-27remove broken non arb fp pathAapo Tahkola
2006-01-27per vp sw fallbacksAapo Tahkola
2005-11-19No longer derive 'ati_fragment_shader' from 'program' class. Only theBrian Paul
program->Id and program->RefCount fields were used and ATI fragment shaders didn't have too much in common with ARB/NV vertex/fragment programs anyway.
2005-11-05Unify vertex/fragment program instuctions.Brian Paul
Based on patch by Ian (#4967) but also unify instruction opcodes.
2005-10-28Compiled arrays for vtxfmt_a path.Aapo Tahkola
2005-09-03silence misc warningsBrian Paul
2005-07-20Clean up warnings in r300 code by making some symbols static, adding prototypesEric Anholt
for others, and being cleaner with types in fragment/vertex program structures. One warning in r300_shader.c is still concerning.
2005-05-28Programmable per-vertex point sizes and proper result reg assigns.Aapo Tahkola
2005-05-23Implement enough of ARB_fragment_program for Keith's texenv programBen Skeggs
generation in Mesa. Requires most recent Mesa cvs to work correctly. Swizzle code is possibly slow/buggy and will probably be replaced. Old behaviour can be controlled by a #define in r300_context.h, if no-one minds I'll remove the old code later on. Also, disabled cube map extension. AFAIK We don't support it yet, and it causes issues with UT2004.
2005-05-11VBOs.Aapo Tahkola
2005-05-05Flat shading and bunch of clarifications to r300_reg.h .Aapo Tahkola
2005-04-30r300 side support for fixed function pipeline. This isnt functional with ↵Aapo Tahkola
current Mesa.
2005-04-19Reorganized shader stuff.Aapo Tahkola