Commit graph

92185 commits

Author SHA1 Message Date
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
Alex Deucher
b469e9e93c R300: fix typo r300 fog reg
Noticed by pzad on IRC
2008-03-24 14:49:43 -04: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
Oliver McFadden
74aee365e3 r300: Merged the constant zero/one source macros. 2008-03-24 12:53:57 +00:00
Oliver McFadden
c75ffff84a r300: Merged the Vector and Math Engine opcode macros. 2008-03-24 12:53:57 +00: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
Ben Skeggs
5ce37d42b3 nv40: maintain pipe_surface status field 2008-03-24 13:45:38 +11:00
Ben Skeggs
799d3bce06 nv40: respect rasterizer cso bypass_clipping flag 2008-03-24 13:41:40 +11:00
Ben Skeggs
46a7f297a1 nouveau: fix infinite wait on space for userbuf.
A recent commit removed a bug which essentially caused a sync after each
use of a user buffer.  In fixing it, the scratch area can now become
fragmented under some circumstances leading to nouveau_bo_tmp() waiting
forever for a large enough block of free space.

This fixes ppracer, gl-117 and probably a heap of other apps.
2008-03-24 13:06:29 +11: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
Ben Skeggs
17491ea27f nv40: vp reg changes similar to recent fp changes 2008-03-23 19:08:59 +11:00
Ben Skeggs
e1ad8c232b nv40: fix fp depth write 2008-03-23 18:20:04 +11:00
Ben Skeggs
4dfcf91296 nv40: remove some badness from fp temp/result allocation
Should hopefully be OK now (on the fragprog size) for MRT.  The hack from
a commit 01cb2cd93e is no longer needed.
2008-03-23 18:15:41 +11:00
Ben Skeggs
3158035154 nv40: catch fp extra-const cases where both const and immd have same idx 2008-03-23 16:32:00 +11:00
Ben Skeggs
ba223e91df nv40: fp: fix multiple refs to a single const withing an instruction 2008-03-23 16:26:42 +11:00
Ben Skeggs
01cb2cd93e nv40: workaround fp result.data[0] clobberage
Temporary, the fp reg handling will get reworked at some point in the near
future.  But before that, there's a few bugs to find.
2008-03-23 16:11:03 +11:00
Ben Skeggs
62a8e7685f nv40: add dxtn formats (disabled) 2008-03-23 14:29:35 +11:00
Ben Skeggs
dcf04ee23c Merge remote branch 'upstream/gallium-0.1' into nouveau-gallium-0.1 2008-03-23 14:18:06 +11:00
Eric Anholt
c986421694 autoconf: Add a workaround for second AC_PROG_PATH not overwriting results. 2008-03-22 11:03:16 -07: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
dc6fab90b4 use ctx->Driver.DeleteProgram() in a few more places 2008-03-22 10:27:03 -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
731dec1bd5 delete default programs with ctx->Driver.DeleteProgram() 2008-03-22 09:13:28 -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