Commit Graph

13874 Commits

Author SHA1 Message Date
Brian d6af8fc51d gallium: move sampler_unit field to pstip_fragment_shader since it's per-shader
Also, fix another texture refcounting bug.
2008-03-24 18:34:03 -06:00
Brian e27127a61c gallium: save/restore samplers in draw_textured_quad() 2008-03-24 18:34:03 -06:00
Brian Paul f654ab40d6 mesa: call glutDestroyWindow (help find mem leaks) 2008-03-24 17:21:18 -06:00
Brian Paul 45cc35e776 gallium: fix a few texture border/mipmap glitches found w/ conform 2008-03-24 17:21:18 -06:00
Brian Paul 762e96c804 gallium: check SamplersUsed to determine if texture needed, as in st_atom_sampler.c
Otherwise, we were sometimes setting texture state but not the corresponding
sampler state.
2008-03-24 17:21:18 -06:00
Brian ae146e4bc8 gallium: make a copy of the vertex shader's token array.
This solves problems when the state tracker frees the token array when the
draw module still needs it.
2008-03-24 16:35:25 -06:00
Brian 7f43029377 gallium: use pipe_texture_reference() in a few places (fixes refcounting bugs) 2008-03-24 16:35:25 -06:00
Brian 648e26aa95 gallium: added tgsi_num_tokens() function to return number of tokens in token array.
Maybe move to a different file someday.
2008-03-24 16:35:24 -06:00
José Fonseca e8c6ea4f60 gallium: Simple cross platform get-opt system.
Uses getenv on Linux, and a memory mapped text file on Windows.

It supports boolean options, flags, and plain strings.
2008-03-24 22:31:36 +00:00
José Fonseca dd51365acd gallium: cleanup p_debug
Now debug_printf is disabled on release builds. Use debug_error or
_debug_printf to output messages on release versions.
2008-03-24 22:31:36 +00:00
Brian d83e75c759 gallium: move filter assignment out of loop 2008-03-24 12:51:50 -06:00
Brian 4e398df682 gallium: fix REALLOC() to copy smaller of old/new sizes 2008-03-24 12:51:18 -06:00
José Fonseca 48726e129a gallium: Protect operator precedence in macro. 2008-03-24 18:25:59 +00:00
Brian Paul 22a3d02254 gallium: free bitmap fragment shaders, misc clean-up 2008-03-24 11:56:05 -06:00
Brian Paul d246274b9c gallium: add missing cso_save_samplers() call 2008-03-24 11:56:05 -06:00
Michal Krol bf8de6d4dc gallium: Remove util_gen_mipmap_filter(). 2008-03-24 16:50:39 +01:00
Brian 110b63d00f gallium: pass the filter mode to util_gen_mipmap().
Remove util_gen_mipmap_filter() when no longer used.
2008-03-24 08:53:16 -06:00
Michal Krol c8c373514a gallium: tweak coords in u_gen_mipmap code 2008-03-24 08:09:34 -06:00
Keith Whitwell e0a9ce10f4 draw: pre-declare referenced structs 2008-03-24 10:53:26 +00:00
Keith Whitwell f4588c1752 Revert "draw: Fix #include order to fix Linux build."
This reverts commit a6d17bf671.
2008-03-24 10:52:20 +00:00
Michel Dänzer a6d17bf671 draw: Fix #include order to fix Linux build. 2008-03-24 09:56:12 +00:00
Keith Whitwell 3b217c7fa7 draw: check need_pipeline() in passthrough 2008-03-23 21:55:19 +00:00
Keith Whitwell 3e9b1bc100 draw: tweak the definition of draw_need_pipeline, fix minor bug 2008-03-23 21:54:44 +00:00
Keith Whitwell e6ea786c00 draw: fix crlf 2008-03-23 21:31:52 +00:00
Keith Whitwell 743e990831 draw: rename emit functions to match pipe_format names 2008-03-23 21:31:52 +00:00
Keith Whitwell 899fcde366 draw: restructure fetch/emit as a pair of function calls 2008-03-23 21:31:52 +00:00
Michal Krol 6edaef5318 gallium: Add util_gen_mipmap_filter().
We need a way to specify the type of minification filter
used to downsample mipmap levels.
The old util_gen_mipmap() retains its behaviour and uses
LINEAR filter.
2008-03-23 20:40:56 +01:00
José Fonseca 38dc0f809d gallium: Fix memory leak.
pipe cso's were being destroyed, but the hash elements themselves not.

proper fix is IMHO add a destructor callback to cso_hash.
2008-03-23 19:38:11 +00:00
José Fonseca 48ef11d308 gallium: Remove the debug_mask_* stuff.
Overcomplex and not much different from using a global variable...
2008-03-23 18:57:35 +00:00
José Fonseca d09b92d7e4 gallium: Fix typo. 2008-03-23 18:52:37 +00:00
José Fonseca 732422f670 gallium: Memory debugging utilities.
There are no known tools for windows kernel memory debugging, so this is a
simple set of malloc etc wrappers.

Enabled by default on win32 debug builds
2008-03-23 18:38:31 +00:00
José Fonseca 312cbc5a5c gallium: wrap decls in extern "C" 2008-03-23 18:38:31 +00:00
Keith Whitwell 301b187ca9 draw: fix some unsigned vs ushort confusion
Middle-end elements are ushort, but prior to that have to treat all
elements as unsigned to avoid wrapping and/or overruns.
2008-03-23 18:21:00 +00:00
Keith Whitwell f40357e25c gallium: beginnings of draw module vertex rework
Trying to put a structure in place that we can actually optimize.
Initially just implementing a passthrough mode, this will fairly soon
replace all the vertex_cache/prim_queue/shader_queue stuff that's so
hard to understand...

Split the vertex processing into a couple of distinct stages:
- Frontend
    - Prepares two lists of elements (fetch and draw) to be processed
      by the next stage.  This stage doesn't fetch or draw vertices, but
      makes the decision which to draw.  Multiple implementations of this
      will implement different strategies, currently just a vcache
      implementation.
- MiddleEnd
    - Takes the list of fetch elements, fetches them, runs the vertex
      shader, cliptest, viewport transform on them to produce a
      linear array of vertex_header vertices.
    - Passes that list of vertices, plus the draw_elements (which index
      into that list) onto the backend
- Backend
    - Either the existing primitive/clipping pipeline, or the vbuf_render
      hardware backend provided by the driver.

Currently, the middle-end is the old passthrough code, and it build hardware
vertices, not vertex_header vertices as above.  It may be that passthrough
is a special case in this respect.
2008-03-23 17:36:49 +00:00
Brian a35c1ca3ad gallium: fix a few more shader-related mem leaks 2008-03-22 10:29:30 -06:00
Brian f8acc3965e use ctx->Driver.DeleteProgram() in a few more places 2008-03-22 10:27:55 -06:00
Brian dae7993afc gallium: free samplers, textures in destroy() 2008-03-22 09:42:59 -06:00
Brian 2f8f6c2918 gallium: remove temporary _screen suffix from function names 2008-03-22 09:15:23 -06:00
Brian 0b60ade834 gallium: fix a few mem leaks when deleting programs 2008-03-22 09:12:52 -06:00
Brian 28b3b07895 gallium: fix mem leak (fee pstipple stage) 2008-03-22 09:12:27 -06:00
Brian f73cfd9e5c delete default programs with ctx->Driver.DeleteProgram() 2008-03-22 09:12:02 -06:00
José Fonseca 4e977fb35b gallium: Remove pedantic asserts.
Move these to a higher level instead.
2008-03-22 10:59:52 +00:00
Ian Romanick 47531442e9 cell: Generate blend / depth test code when state atom is created
Code generation should be performed when the device-specific state
atom is created, not when it is bound.
2008-03-21 15:57:01 -07:00
Ian Romanick 600499cf88 cell: Change code-gen for CONST_COLOR blend factor
Previously the constant color blend factor was compiled into the
generated code.  This meant that the code had to be regenerated each
time the constant color was changed.  This doesn't fit with the model
used in Gallium.

As-is, the code could be better.  The constant color is loaded for
every quad processed, even if it is not used.  Also, if a lot of (1-x)
blend factors are used, 1.0 will be loaded and reloaded into registers
many times.
2008-03-21 15:57:01 -07:00
Ian Romanick f140062b72 Tabs to spaces 2008-03-21 15:57:01 -07:00
Ian Romanick 2902c164a2 cell: Remove unnecessary default_blend work-around
I suspect that there was some other bug in the blend code-gen that
made this work-around necessary.
2008-03-21 15:57:01 -07:00
Brian fb1f4e207d gallium: fix const buffer update bug
If only glUniform is called between two renderings, the const buffers weren't
getting updated.  Need to set the _NEW_PROGRAM flag in st_upload_constants()
as that's the dirty flag set by glUniform.
Fixes glean tapi2 test.
2008-03-21 15:54:27 -06:00
Brian a39091bc5b Refactor PBO validate/map code.
We always need to do PBO validation, so do that in core Mesa before calling driv
er routine.
cherry-picked from Mesa/master.
2008-03-21 14:20:07 -06:00
Brian Paul f1626f0bfd gallium: implement PBO operations for glDraw/ReadPixels and glBitmap
At this time there are no optimizations for directly blitting between
buffer objects and surfaces (always go through mappings).
glean pbo test passes now
2008-03-21 13:44:27 -06:00
Brian Paul ff938bf059 add a number of PBO validate/map/unmap functions
Helper functions for (some) drivers, including swrast.
cherry-picked from Mesa/master
2008-03-21 13:43:07 -06:00