Commit Graph

12129 Commits

Author SHA1 Message Date
Ben Skeggs ce64778ed1 nv40: respect do_flip in surface_copy() 2008-03-25 12:58:57 +11:00
Ben Skeggs 9e1f7b2c57 Merge remote branch 'upstream/gallium-0.1' into nouveau-gallium-0.1 2008-03-25 12:14:49 +11:00
Ben Skeggs 601b018a9a nouveau: refcount buffers on validate list. 2008-03-25 12:12:26 +11:00
Brian 4654803e25 gallium: fix a few bugs, warnings in the p_debug code
added missing _ to a _debug_printf() call.
2008-03-24 18:49:56 -06:00
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 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
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
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