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
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
Brian
c80a380ebb
Fix some PBO breakage.
...
In _mesa_Bitmap, can't early return if bitmap ptr is NULL, it may be an offset
into a PBO. Similarly for _mesa_GetTexImage.
2008-03-21 12:32:48 -06:00
Brian
b70a6babfb
i915: added to-do note about setting the max_lod register to get proper min/mag filter selection
2008-03-21 11:10:42 -06:00
Brian Paul
74525d474c
mesa: minor code re-org
2008-03-21 11:06:52 -06:00
Brian Paul
3600e7402c
gallium: use is_format_supported(PIPE_FORMAT_DXT5_RGBA) to check if s3tc is supported
...
The PIPE_CAP_S3TC token will be deprecated.
2008-03-21 11:06:52 -06:00
Brian Paul
4394736252
gallium: added DXT formats (preliminary, will probably change)
2008-03-21 11:06:52 -06:00
Brian Paul
13540d38d9
gallium: use is_format_supported() to determine if GL_EXT_texture_sRGB is supported
2008-03-21 11:06:52 -06:00
Brian Paul
419248b528
gallium: document is_format_supported()'s type param
2008-03-21 11:06:52 -06:00
Brian Paul
a472e3558e
gallium: PIPE_FORMAT_TYPE_ comments
2008-03-21 11:06:52 -06:00
Brian Paul
ad62644290
gallium: added sRGB formats
2008-03-21 11:06:51 -06:00
Brian Paul
403c7ba91a
gallium: additional comments, fix typos, etc
2008-03-21 11:06:51 -06:00
Ben Skeggs
75b85fd33a
nv40: fix bug in query code
2008-03-21 23:24:16 +11:00
Michel Dänzer
23c98f618b
gallium: Update scons build for state tracker files added/removed.
2008-03-21 12:14:06 +00:00
Ben Skeggs
3be8785e08
nv40: add 16-bit SSCALED vb formats
2008-03-21 23:09:01 +11:00
Ben Skeggs
3a0dd2e6d1
nv40: ensure vb relocs don't end up on list for swtnl
...
Avoids bo code bailing out because of mapped buffers being validated.
2008-03-21 23:03:25 +11:00
Ben Skeggs
19b57690ad
nv40: call semi-magic 0x1d88 method
2008-03-21 22:28:18 +11:00
Ben Skeggs
308d7b1711
nv40: swtnl fallback on unsupported array format
2008-03-21 22:09:29 +11:00
Ben Skeggs
0c91f5991d
nv40: oops
2008-03-21 22:02:49 +11:00
Ben Skeggs
46b8dd9c16
nv40: s/free/FREE/
2008-03-21 22:01:22 +11:00
Ben Skeggs
3216287139
nv40: align each level to 64 pixels
2008-03-21 21:58:17 +11:00