Commit graph

14348 commits

Author SHA1 Message Date
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
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
Michel Dänzer
23c98f618b gallium: Update scons build for state tracker files added/removed. 2008-03-21 12:14:06 +00:00
Ian Romanick
cab68957c7 cell: Fix several bugs in blend code-gen
- Alpha factor set to a _COLOR mode was mishandled
- Cases when either dst factor or src factor was ZERO were mishandled
- MIN and MAX cases were backwards
- Case when blend was disabled was mishandled
- Incorrect comments about number of instructions generated

The tests blendminmax and blendsquare run correctly.
2008-03-20 18:17:48 -07:00
Ian Romanick
4b9520fc05 cell: Call the correct function to generate blending code
Cut-and-paste for the lose. :(
2008-03-20 17:37:26 -07:00
Ian Romanick
df1d6e2410 cell: Fix bus error when there is no depth buffer 2008-03-20 17:37:26 -07:00
Ian Romanick
2b21bde3b1 cell: Use code-gen for alpha blend
So far this is only tested when GL_BLEND is disabled.
2008-03-20 17:37:26 -07:00
Brian Paul
3b3774b122 gallium: catch some out of memory conditions in the texture image code.
st_finalize_texture()'s return code now indicates success/fail instead of
presence of texture border (which we discard earlier).
2008-03-20 17:08:07 -06:00
Brian
0565e6888a gallium: set fb.width/height 2008-03-20 15:22:20 -06:00
Brian
00cf178d93 gallium: enable vp input semantic info 2008-03-20 15:21:55 -06:00
Brian
09f67990ab gallium: use new framebuffer width, height fields 2008-03-20 15:04:08 -06:00
Brian
2fb30b77ad cell: use pipe_framebuffer_state.width, height 2008-03-20 15:04:08 -06:00
Brian
3a4ece89a7 gallium: assign framebuffer width, height 2008-03-20 15:04:08 -06:00
Brian
f3d23aa787 gallium: unused var silence warning 2008-03-20 15:04:08 -06:00
Brian
80567f9c9f gallium: added width, height to pipe_framebuffer_state 2008-03-20 15:04:08 -06:00
Brian
f6cd3778c5 gallium: glBitmap code now separe from glDraw/CopyPixels code
Also, glBitmap now re-uses the vertex buffer to avoid frequent allocations/
deallocations.  And, use u_simple_shaders utility code.
2008-03-20 15:04:08 -06:00
Brian
3ece9ace54 gallium: glBitmap code now separated from glDraw/CopyPixels code 2008-03-20 15:04:08 -06:00
Brian
b028d32af4 gallium: create one vertex buffer and re-use 2008-03-20 15:04:08 -06:00