Keith Whitwell [Thu, 3 Apr 2008 11:21:30 +0000 (12:21 +0100)]
draw: add passthrough path to the pipeline
This handles the case where bypass_vs is set, but vertices need to go
through the pipeline for some reason - eg unfilled polygon mode.
Demonstrates how to drive the pipeline from inside one of these things.
Keith Whitwell [Wed, 2 Apr 2008 11:05:55 +0000 (12:05 +0100)]
draw: add missing break statement
Keith Whitwell [Wed, 2 Apr 2008 10:55:03 +0000 (11:55 +0100)]
draw: Set the backend prim in the pt 'prepare' operation
Leaving it until 'run' is bad as the primitive is pretty much state
for some drivers and so needs to get set early. In some drivers
this is used to determine things like vertex format, etc -- by the
time we get to 'run', it's too late to change this.
Keith Whitwell [Wed, 2 Apr 2008 10:38:33 +0000 (11:38 +0100)]
gallium: add a flag to turn on gl rasterization rules
Use this to set up hardware rasterization (if your hardware can
do it) or otherwise turn on various tweaks in the draw module.
Currently only hooked up to point biasing code.
Keith Whitwell [Wed, 2 Apr 2008 09:43:37 +0000 (10:43 +0100)]
gallium: add temporary facility for rasterization-time clamping of point sizes
Brian [Tue, 1 Apr 2008 22:20:29 +0000 (16:20 -0600)]
mesa: added a cast to avoid int overflow, plus rename texels->pixels
Brian [Tue, 1 Apr 2008 22:07:09 +0000 (16:07 -0600)]
mesa: measure fill rate for drawing a large quad with basic shading/texture modes
Brian [Tue, 1 Apr 2008 21:42:42 +0000 (15:42 -0600)]
cell: more multi-texture fixes (mostly working now)
Brian [Tue, 1 Apr 2008 20:56:10 +0000 (14:56 -0600)]
mesa: destroy window upon exit
Brian [Tue, 1 Apr 2008 20:55:31 +0000 (14:55 -0600)]
cell: turn off some debug output
Brian [Tue, 1 Apr 2008 20:52:25 +0000 (14:52 -0600)]
cell: pass tex unit to get_texel()
Brian [Tue, 1 Apr 2008 20:52:04 +0000 (14:52 -0600)]
cell: fix bug in texture tiling function (non-square textures work now)
Brian [Tue, 1 Apr 2008 17:35:53 +0000 (11:35 -0600)]
cell: checkpoint: more multi-texture work
Brian [Tue, 1 Apr 2008 17:30:17 +0000 (11:30 -0600)]
cell: assert num samplers/textures <= CELL_MAX_SAMPLERS
Brian [Tue, 1 Apr 2008 17:28:27 +0000 (11:28 -0600)]
cell: return CELL_MAX_SAMPLERS to indicate number of texture units
Brian [Tue, 1 Apr 2008 17:28:01 +0000 (11:28 -0600)]
gallium: init ctx->Const.MaxTextureUnits
Brian [Tue, 1 Apr 2008 17:05:32 +0000 (11:05 -0600)]
cell: enable #define CACHE_STATS to print a cache report upon exit
Ben Skeggs [Tue, 1 Apr 2008 14:59:13 +0000 (08:59 -0600)]
handle IsPositionInvariant flag
Keith Whitwell [Tue, 1 Apr 2008 14:19:30 +0000 (15:19 +0100)]
draw: remove dead code
Keith Whitwell [Tue, 1 Apr 2008 13:49:56 +0000 (14:49 +0100)]
draw: more flatshade_first changes
- Reduce the number of changes to the normal vertex ordering
- Assume that the hardware knows how to do this in the standard case.
- Add support to the passthrough vcache path.
Keith Whitwell [Tue, 1 Apr 2008 13:48:59 +0000 (14:48 +0100)]
draw: respect flatshade_first in flatshade stage
Keith Whitwell [Tue, 1 Apr 2008 13:14:46 +0000 (14:14 +0100)]
draw: associate rhw divide with clipping not viewport flag
Keith Whitwell [Tue, 1 Apr 2008 13:14:06 +0000 (14:14 +0100)]
draw: flush between pt/non-pt modes
Michel Dänzer [Tue, 1 Apr 2008 12:02:30 +0000 (13:02 +0100)]
gallium: Fencing fix.
Make sure the struct pipe_fence_handle* we point st_flush() to is initialized
to NULL, so winsys->fence_reference() doesn't try to unreference a random
struct pipe_fence_handle* pointer.
Michel Dänzer [Tue, 1 Apr 2008 12:00:51 +0000 (13:00 +0100)]
scons: Fix test for building dri/intel winsys.
Brian [Tue, 1 Apr 2008 03:15:57 +0000 (21:15 -0600)]
cell: update some of the CAP, texformat queries
Brian [Tue, 1 Apr 2008 03:09:02 +0000 (21:09 -0600)]
cell: more work for multi-texture support
Brian [Tue, 1 Apr 2008 02:36:53 +0000 (20:36 -0600)]
cell: set cell->num_textures in cell_set_sampler_textures()
José Fonseca [Tue, 1 Apr 2008 01:41:43 +0000 (10:41 +0900)]
gallium: Do not assume that buffers are freed in the same order they are fenced.
Also free buffers as soon as possible.
This short term fix corrects the fenced list behavior but it will impact on performance.
The long term fix is probably replace the linked list (legacy from the bufpool code) by
a binary tree.
Brian [Mon, 31 Mar 2008 23:38:21 +0000 (17:38 -0600)]
cell: initial work to support multi-texture
Brian [Mon, 31 Mar 2008 22:54:31 +0000 (16:54 -0600)]
cell: added const qualifier
Brian [Mon, 31 Mar 2008 22:44:56 +0000 (16:44 -0600)]
cell: updated comments: s/test/SPE/
Brian [Mon, 31 Mar 2008 22:35:13 +0000 (16:35 -0600)]
cell: implement logicop/output for PIPE_FORMAT_B8G8R8A8_UNORM
Remote display to my usual terminal shows the right colors again.
Not 100% sure about the shuffle control words, but they seem to work.
José Fonseca [Mon, 31 Mar 2008 22:22:10 +0000 (07:22 +0900)]
gallium: Compute YCBCR bit depth.
Brian [Mon, 31 Mar 2008 21:12:14 +0000 (15:12 -0600)]
gallium: used inverted bitmap texture to simplify the fragment shader.
"Off" bits get stored as texel=0xff and "on" bits get stored as texel=0x0.
Then use KIL -tmp to kill the off bits and keep the on bits.
This shortens the fragment program by two instructions.
Brian [Mon, 31 Mar 2008 21:12:01 +0000 (15:12 -0600)]
gallium: updated comment for bypass_vs
Markus Amsler [Mon, 31 Mar 2008 20:58:11 +0000 (14:58 -0600)]
fix parsing bug involving comments at the end of ARB v/f programs
Brian [Mon, 31 Mar 2008 20:38:27 +0000 (14:38 -0600)]
gallium: use cso_save/restore_sampler_textures() functions
Brian [Mon, 31 Mar 2008 20:20:16 +0000 (14:20 -0600)]
gallium: draw_passthrough.c is obsolete - removed
Brian [Mon, 31 Mar 2008 20:18:36 +0000 (14:18 -0600)]
gallium: set the bypass_vs flag now
The glBitmap vertex shader is a no-op, but we still have to specify it in
order to convey the number of inputs/outputs.
Brian [Mon, 31 Mar 2008 20:14:30 +0000 (14:14 -0600)]
gallium: move the test for bypass_vs into the vs_XXX_run() functions
Also:
1. Added an identity_viewport flag to skip viewport transformation when it
has no effect. Might also add an explicit bypass_viewport flag someday.
2. Separate the code for computing clip codes and doing the viewport transform.
Predicate them separately.
Note: even if bypass_vs is set, we still look at the shader to determine the
number of inputs and outputs.
Brian [Mon, 31 Mar 2008 20:13:09 +0000 (14:13 -0600)]
gallium: draw_passthrough.c is not used anymore
Brian [Mon, 31 Mar 2008 20:06:42 +0000 (14:06 -0600)]
gallium: draw_passthrough.c is not used anymore
Brian [Mon, 31 Mar 2008 18:18:20 +0000 (12:18 -0600)]
gallium: turn on clipping for bitmaps
Bitmaps can extend beyond window edges so we need to clip.
Also, move some state atom vars to st_context to be a bit more efficient.
José Fonseca [Mon, 31 Mar 2008 00:02:08 +0000 (09:02 +0900)]
gallium: Eliminate p_winsys::printf
Not convenient and almost not used at all. Better replacements in p_debug.h
Michal Krol [Sun, 30 Mar 2008 21:21:20 +0000 (23:21 +0200)]
draw: Do not run full pipeline when flatshade_first for point primitives.
Michal Krol [Sun, 30 Mar 2008 20:48:49 +0000 (22:48 +0200)]
draw: Fix bypass_vs semantic misuse.
Brian Paul [Sat, 29 Mar 2008 13:41:03 +0000 (14:41 +0100)]
gallium: Set vertex state/buffers en-mass.
José Fonseca [Tue, 25 Mar 2008 17:30:34 +0000 (17:30 +0000)]
gallium: Fix some MSVC warnings.
Brian [Sat, 29 Mar 2008 00:41:10 +0000 (18:41 -0600)]
gallium: begin some bounding box code for bitmap cache
Brian [Sat, 29 Mar 2008 00:18:55 +0000 (18:18 -0600)]
gallium: added an (int) cast in setup_bitmap_vertex_data() to fix a signed/unsigned arithmetic problem
Negative values became very large uints.
Brian [Fri, 28 Mar 2008 21:22:34 +0000 (15:22 -0600)]
gallium: Fix computation of Z values when not using early Z.
This fixes the missing bitmaps in the engine and fogcoord demos.
Brian [Fri, 28 Mar 2008 21:17:50 +0000 (15:17 -0600)]
gallium: don't call st_flush_bitmap_cache() if the only change is _NEW_PACKUNPACK state
Brian [Fri, 28 Mar 2008 20:56:05 +0000 (14:56 -0600)]
gallium: disable a debug hack
Brian [Fri, 28 Mar 2008 20:53:47 +0000 (14:53 -0600)]
gallium: implement a glBitmap cache
The bitmap cache attempts to accumulate a series of glBitmap calls in a
buffer to effectively render a whole bunch of bitmaps at once.
The cache can be disabled, if needed, by setting UseBitmapCache=GL_FALSE.
Brian Paul [Fri, 28 Mar 2008 19:10:16 +0000 (13:10 -0600)]
mesa: fix texture/renderbuffer mix-up in test_attachment_completeness()
Brian Paul [Fri, 28 Mar 2008 19:09:19 +0000 (13:09 -0600)]
gallium: re-work texture format selection code
Use same code for choosing texture format and renderbuffer format.
Roland Scheidegger [Fri, 28 Mar 2008 14:43:00 +0000 (15:43 +0100)]
gallium: remove redundant compare bit in sampler state
Michal Krol [Fri, 28 Mar 2008 11:31:35 +0000 (12:31 +0100)]
gallium: Bump PIPE_MAX_SAMPLERS to 16.
We need it to fulfil D3D minimum requirements.
Brian [Fri, 28 Mar 2008 03:11:45 +0000 (21:11 -0600)]
If visual is 32bpp, set visual->alphaBits = 8.
This works since we always use XImages for color buffers. It wouldn't always
work for Windows/Pixmaps.
Brian [Thu, 27 Mar 2008 23:41:55 +0000 (17:41 -0600)]
gallium: replace PIPE_ATTRIB_MAX with PIPE_MAX_ATTRIBS
The later follows the naming scheme of other limits.
Keep the old definition until all possible usage is updated.
Brian Paul [Thu, 27 Mar 2008 23:18:25 +0000 (17:18 -0600)]
gallium: updated/improved comments, minor re-formatting
Brian [Thu, 27 Mar 2008 22:19:46 +0000 (16:19 -0600)]
consolidate some parsing functions that were pretty much identical for vertex/fragment programs
cherry-picked from master
Brian [Thu, 27 Mar 2008 22:05:40 +0000 (16:05 -0600)]
mesa: misc sync-up with master
Brian [Thu, 27 Mar 2008 22:04:20 +0000 (16:04 -0600)]
raise GL_INVALID_OPERATION if glProgramString compilation fails
cherry-picked from master
Brian [Thu, 27 Mar 2008 21:54:44 +0000 (15:54 -0600)]
Fix the compile of disabled DEBUG_PARSING code.
cherry-picked from master
Brian [Thu, 27 Mar 2008 21:52:00 +0000 (15:52 -0600)]
make sure state token values are fully initialized
cherry-picked from master
Brian [Thu, 27 Mar 2008 21:51:07 +0000 (15:51 -0600)]
added program_error2() function for better error reporting
cherry-picked from master
Brian [Thu, 27 Mar 2008 21:48:54 +0000 (15:48 -0600)]
Fix state.texgen parsing error (bug 12313).
Replace *(*inst++) with *(*inst)++ in a few places.
Cherry-picked from master.
Brian [Thu, 27 Mar 2008 21:42:52 +0000 (15:42 -0600)]
gallium: Update calls to the simple shader functions
Brian [Thu, 27 Mar 2008 21:42:09 +0000 (15:42 -0600)]
gallium: return pipe_shader_state from the simple shader functions
Allows us to fix a mem leak (tokens array).
Brian [Thu, 27 Mar 2008 21:41:52 +0000 (15:41 -0600)]
gallium: fix Element() macro redefinition warning
Brian [Thu, 27 Mar 2008 21:35:25 +0000 (15:35 -0600)]
gallium: fix incorrect types for shaders
Brian [Thu, 27 Mar 2008 21:33:47 +0000 (15:33 -0600)]
gallium: remove temporary static var
Brian [Thu, 27 Mar 2008 21:27:31 +0000 (15:27 -0600)]
gallium: silence unused var warning
Brian [Thu, 27 Mar 2008 21:27:14 +0000 (15:27 -0600)]
cell: include cell_state_per_fragment.h to silence warning
Brian [Thu, 27 Mar 2008 21:26:54 +0000 (15:26 -0600)]
cell: added (uint64_t) cast to silence warning
Brian [Thu, 27 Mar 2008 21:26:22 +0000 (15:26 -0600)]
cell: fix unclosed comment
Ian Romanick [Wed, 26 Mar 2008 17:52:08 +0000 (10:52 -0700)]
xlib: Fix build error from recent fence changes
Ian Romanick [Wed, 26 Mar 2008 17:45:32 +0000 (10:45 -0700)]
cell: Implement code-gen for logic op
This also implements code-gen for the float-to-packed color
conversion. It's currently hardcoded for A8R8G8B8, but that can
easily be fixed as soon as other color depths are supported by the
Cell driver.
Brian Paul [Wed, 26 Mar 2008 15:02:54 +0000 (09:02 -0600)]
gallium: need to call st_validate_state() in Bitmap()
Brian Paul [Wed, 26 Mar 2008 14:21:17 +0000 (08:21 -0600)]
gallium: as for aapoints, make the extra texcoord per-shader state
Michel Dänzer [Wed, 26 Mar 2008 09:36:40 +0000 (09:36 +0000)]
gallium: Change pipe->flush() interface to optionally return a fence.
The cell driver still uses an internal CELL_FLUSH_WAIT flag, in the long run
proper fencing should be implemented for it.
Brian [Wed, 26 Mar 2008 01:19:14 +0000 (19:19 -0600)]
gallium: the generic attrib we use for computing coverage is per-shader
Fixes a very tricky conformance failure.
Brian [Wed, 26 Mar 2008 01:18:56 +0000 (19:18 -0600)]
gallium: added fragment emit/write debug counters
Ian Romanick [Wed, 26 Mar 2008 01:15:34 +0000 (18:15 -0700)]
cell: Enable MIT-SHM on Cell.
Ian Romanick [Wed, 26 Mar 2008 01:07:56 +0000 (18:07 -0700)]
xlib: Add support for MIT-SHM in xlib winsys driver
Gives about a 3% performance increase in gears on x86-64 (non-tiled)
and about 10% performance increase in gears on Cell (tiled). I
actually expected more of a boost. :(
Ian Romanick [Mon, 24 Mar 2008 19:15:59 +0000 (12:15 -0700)]
cell: Float convert-to and convert-from instructions use different shift bias
Michal Krol [Tue, 25 Mar 2008 22:49:11 +0000 (23:49 +0100)]
draw: Take flatshade_first rasterizer bit into account.
Michal Krol [Tue, 25 Mar 2008 22:48:30 +0000 (23:48 +0100)]
gallium: Introduce flatshade_first field to rasterizer_state.
This bit tells us which vertex of the primitive is used to
propagate color for the remaining vertices if flatshade mode.
Brian Paul [Tue, 25 Mar 2008 20:12:55 +0000 (14:12 -0600)]
gallium: disable the selection/feedback draw module's options for wide lines, points, etc.
Disable paths that would convert points/lines to tris as that upsets selection,
feedback, rastpos.
Brian Paul [Tue, 25 Mar 2008 18:27:48 +0000 (12:27 -0600)]
gallium: added some debug code (disable)
Brian Paul [Tue, 25 Mar 2008 18:27:32 +0000 (12:27 -0600)]
mesa: fix some issues in _mesa_combine_programs()
Use a temporay register to connect outputs of first program to inputs of
second program.
Also, fix bug in replace_registers(): didn't search/replace DstReg.
Keith Whitwell [Tue, 25 Mar 2008 18:15:58 +0000 (18:15 +0000)]
draw: vertex fetch can be validated too early leading to an assertion... disable
Keith Whitwell [Tue, 25 Mar 2008 18:09:25 +0000 (18:09 +0000)]
draw: don't use fetch_and_store for bypass_vs mode, it's not quite right
Brian Paul [Tue, 25 Mar 2008 17:32:31 +0000 (11:32 -0600)]
mesa: append fog instructions after parsing if a fog option is set
Drivers don't have to worry about it then.
Brian Paul [Tue, 25 Mar 2008 17:22:57 +0000 (11:22 -0600)]
mesa: when negating scalar src args, use NEGATE_XYZW, not NEGATE_X
This makes things easier on the back-end when generating GPU code.
José Fonseca [Tue, 25 Mar 2008 17:47:39 +0000 (17:47 +0000)]
Fix typo
Keith Whitwell [Tue, 25 Mar 2008 15:17:53 +0000 (15:17 +0000)]
draw: take primitive into account when deciding if the pipeline is active
José Fonseca [Tue, 25 Mar 2008 11:37:54 +0000 (11:37 +0000)]
gallium: Use debug_get_option for GETENV