Eric Anholt [Sun, 3 Feb 2008 07:27:19 +0000 (23:27 -0800)]
[965] Convert brw_draw_upload to managing dri_bos, not gl_buffer_objects.
This helps us avoid a bunch of mess with gl_client_arrays that we filled
with unused data and confused readers.
Eric Anholt [Sat, 2 Feb 2008 10:59:55 +0000 (02:59 -0800)]
[965] Remove dead structure in brw_draw_upload.c.
Eric Anholt [Tue, 22 Jan 2008 22:03:24 +0000 (14:03 -0800)]
[965] Move temporary vbo array storage into the function using it.
Eric Anholt [Tue, 22 Jan 2008 19:35:04 +0000 (11:35 -0800)]
[965] Remove dead brw_vertex_element members.
Eric Anholt [Tue, 22 Jan 2008 19:34:46 +0000 (11:34 -0800)]
[965] Add a wrapper around interleaved copy_array_to_vbo_array for profiling.
If compiled with optimization, it shouldn't appear at all, and helps me for
now.
Eric Anholt [Tue, 22 Jan 2008 19:04:09 +0000 (11:04 -0800)]
[965] Avoid overloaded use of the term 'input' for clarity.
Eric Anholt [Tue, 22 Jan 2008 18:56:09 +0000 (10:56 -0800)]
[965] Replace VEP/VBP state structures with inline batch emits.
Dave Airlie [Mon, 4 Feb 2008 10:59:26 +0000 (21:59 +1100)]
r300: fix isosurf on rs690
Xiang, Haihao [Sun, 3 Feb 2008 12:36:17 +0000 (20:36 +0800)]
i965: fix potential NULL pointer dereference. The third region
isn't created at all for 965
Eric Anholt [Sat, 2 Feb 2008 00:04:38 +0000 (16:04 -0800)]
[965] Fix indentation.
Eric Anholt [Fri, 1 Feb 2008 02:43:51 +0000 (18:43 -0800)]
Revert "intel: don't apply the relocation optimization if a target"
This reverts commit
e2cb905bc6e23eaafaeeb2abdc9480e70959ee3f.
It was a reversion of an optimization hidden as otherwise.
pre_target_buf_handle was always NULL, so the optimization was never enabled,
rather than fixing the important optimization (resulting in 25-50% performance
loss).
Eric Anholt [Fri, 1 Feb 2008 00:16:29 +0000 (16:16 -0800)]
[965] Replace XXX comment about constant swizzle with an assert.
Eric Anholt [Mon, 28 Jan 2008 06:21:01 +0000 (22:21 -0800)]
[965] Fix some indentation in brw_vs_tnl.c.
Xiang, Haihao [Fri, 1 Feb 2008 16:56:51 +0000 (00:56 +0800)]
mesa: re-define NEED_SECONDARY_COLOR. fix #14310.
Zou Nan hai [Fri, 1 Feb 2008 12:28:26 +0000 (20:28 +0800)]
[intel] fix for previous fix
Zou Nan hai [Fri, 1 Feb 2008 09:36:56 +0000 (17:36 +0800)]
[intel] use _mesa_copy_rect for upload compressed texture,
this fix bad texture issue in some games(UT and quake).
Xiang, Haihao [Fri, 1 Feb 2008 08:46:41 +0000 (16:46 +0800)]
i965: Don't emit state if fall back to software rendering. fix #14116
Zou Nan hai [Thu, 31 Jan 2008 10:22:19 +0000 (18:22 +0800)]
[i965] renable regative rhw test
Xiang, Haihao [Thu, 31 Jan 2008 09:17:03 +0000 (17:17 +0800)]
intel: don't apply the relocation optimization if a target
buffer is used for a relocatee in the former relocation process
then another target buffer is used for this relocatee at the same
offset in the current relocation process.
Roland Scheidegger [Thu, 31 Jan 2008 00:34:01 +0000 (01:34 +0100)]
regenerate glsl library functions
Roland Scheidegger [Thu, 31 Jan 2008 00:32:46 +0000 (01:32 +0100)]
fix w component of glsl vec4 asin
Brian [Wed, 30 Jan 2008 15:08:23 +0000 (08:08 -0700)]
check if fb->Delete is null (bugs 13507,14293)
Alex Deucher [Tue, 29 Jan 2008 15:14:04 +0000 (10:14 -0500)]
Add new RV380 pci id
bug 14289
Xiang, Haihao [Tue, 29 Jan 2008 03:13:53 +0000 (11:13 +0800)]
i965: new integrated graphics chipset support
Brian [Mon, 28 Jan 2008 19:41:47 +0000 (12:41 -0700)]
push out far clip plane to 200
Brian [Mon, 28 Jan 2008 19:35:20 +0000 (12:35 -0700)]
Added d/D keys to change viewing distance, 'a' to toggle animation
Dave Airlie [Sun, 27 Jan 2008 02:16:06 +0000 (12:16 +1000)]
r300: add initial rs690 support to Mesa
The rs690 has an rs4xx style vertex-shader less 3D engine. It uses the new
r500 output engine though. It also needs a new drm with rs690 support,
which is just getting cleaned up.
Xiang, Haihao [Fri, 25 Jan 2008 08:52:08 +0000 (16:52 +0800)]
i965: valid message length includes message header.
Xiang, Haihao [Fri, 25 Jan 2008 08:38:38 +0000 (16:38 +0800)]
i965: re-define the type of reg.loopcount.
avoid some issues such that 1 + (-2) gets a big
positive value.
Eric Anholt [Thu, 24 Jan 2008 21:00:13 +0000 (13:00 -0800)]
Bufmgr cleanup from intel-batchbuffer branch of 2d driver.
Eric Anholt [Thu, 24 Jan 2008 20:29:04 +0000 (12:29 -0800)]
Clean up comments/dead code from relocation buffer change.
Eric Anholt [Thu, 24 Jan 2008 20:26:29 +0000 (12:26 -0800)]
Merge commit 'airlied/i915-ttm-cfu'
This requires current DRM which changes the relocation buffer from being a
buffer object to plain malloced memory.
Brian [Thu, 24 Jan 2008 16:15:31 +0000 (09:15 -0700)]
Bring in previous 7.0.1/2 release notes, added Cell driver page.
Dave Airlie [Thu, 24 Jan 2008 04:38:50 +0000 (14:38 +1000)]
i915: move to using copy from user for relocations
Brian [Wed, 23 Jan 2008 23:03:19 +0000 (16:03 -0700)]
Assorted patches for miniglx/linux-solo (Gavin Li <codeview@gmail.com>)
Brian [Wed, 23 Jan 2008 04:11:55 +0000 (21:11 -0700)]
Fix some issues with glDrawBuffer(GL_NONE), bug 14198
Set _ColorDrawBuffers[0] = NULL if no renderbuffers enabled.
Check that _ColorDrawBuffers[0] is non-null before dereferencing in a few places.
Adam Jackson [Tue, 22 Jan 2008 19:57:20 +0000 (14:57 -0500)]
glxinfo: Fix multisample visual reporting.
strstr() == 0 tests for the string _not_ being present. Originally
Red Hat bug #351871.
Kristian Høgsberg [Tue, 22 Jan 2008 17:13:16 +0000 (12:13 -0500)]
[intel] Clean up references to screen buffer metrics.
The screen wide info such as pitch and cpp are obsoleted by the FBO
changes, so clean up the last few references to those, except for
setting up the legacy screen regions.
Brian [Tue, 22 Jan 2008 15:40:29 +0000 (08:40 -0700)]
fix pc vs. gc->ps usage (bug 14197)
Brian [Tue, 22 Jan 2008 14:56:26 +0000 (07:56 -0700)]
Don't build yuvrect_client by default
Added 'extra' rule to build optional yuvrect_client, shape, xdemo programs
Brian [Tue, 22 Jan 2008 14:54:08 +0000 (07:54 -0700)]
remove unused var
Alexey Sokolov [Tue, 22 Jan 2008 14:43:43 +0000 (07:43 -0700)]
define M_PI if needed
Eric Anholt [Sun, 20 Jan 2008 07:22:45 +0000 (23:22 -0800)]
[965] Fix WM unit cache keying that broke line stipple and polygon offset.
Eric Anholt [Fri, 18 Jan 2008 19:39:35 +0000 (11:39 -0800)]
[intel] Fix memory leak with fake bufmgr.
Eric Anholt [Fri, 18 Jan 2008 18:15:28 +0000 (10:15 -0800)]
[965] Do a little bit rotation in state hash to reduce collisions.
This was around 3% improvement in OA.
Eric Anholt [Sat, 12 Jan 2008 02:54:31 +0000 (18:54 -0800)]
[intel] Use a static array for the validation list instead of a linked list.
Around 10% of a CPU was being wasted to create the linked list which we
threw out immediately after passing it to the kernel.
Eric Anholt [Thu, 17 Jan 2008 22:23:04 +0000 (14:23 -0800)]
[intel] Make the no_rast option be standard driconf instead of INTEL_NO_RAST.
Eric Anholt [Mon, 14 Jan 2008 19:03:05 +0000 (11:03 -0800)]
[i915] Fix driver from cliprects changes, and clean up state emission.
The fix for pageflipping with cliprects ended up causing a batch flush at
an inopportune time, which is fixed by moving it up.
Additionally, the recovery code for handling batch wraps at bad times is
replaced by just checking for the space up front, and using a no_batch_wrap
assert like on 965 to make sure that we weren't wrong about how much space that
was.
Eric Anholt [Thu, 17 Jan 2008 19:45:37 +0000 (11:45 -0800)]
Eric Anholt [Thu, 17 Jan 2008 19:25:04 +0000 (11:25 -0800)]
[965] Fix potential segfaults from bad realloc.
C has no order of evaluation restrictions on function arguments, so we
attempted to realloc from new-size to new-size.
Xiang, Haihao [Thu, 17 Jan 2008 03:05:24 +0000 (11:05 +0800)]
i965: always call dri_emit_reloc when creating clip unit state
This fix ensures it gets the starting location of the clip program
if a clip unit state is same as a unit which is created when metaops
is actived and it doesn't impact metaops because the clip state offset
isn't emitted when metaops is actived.
Eric Anholt [Wed, 16 Jan 2008 23:07:10 +0000 (15:07 -0800)]
[965] Fix inversion of SLT/SGE results in vertex programs.
The WM code had this right, so copy its behavior. This reverts a flipping
of the arguments to SLT in brw_vs_tnl which came in with the GLSL code that
probably occurred to work around the flipped results, and brings the code back
in line with t_vp_build.c.
Eric Anholt [Wed, 16 Jan 2008 18:50:28 +0000 (10:50 -0800)]
[965] Rename depth_mask in CC key to depth_write, since it's a boolean enable.
Eric Anholt [Wed, 16 Jan 2008 18:46:35 +0000 (10:46 -0800)]
[965] Fix the type of alpha_ref in CC key, fixing ppracer rendering.
Dan Nicholson [Wed, 16 Jan 2008 06:52:25 +0000 (22:52 -0800)]
autoconf: Use -fno-strict-aliasing on GCC
This change adds -fno-strict-aliasing when using gcc and g++, just like
the existing configs.
Eric Anholt [Tue, 15 Jan 2008 23:09:21 +0000 (15:09 -0800)]
Fix the compile of disabled DEBUG_PARSING code.
Eric Anholt [Tue, 15 Jan 2008 23:08:34 +0000 (15:08 -0800)]
Bug #13492: Only call ProgramStringNotify if program parsing succeeded.
Wine intentionally tries some out-of-spec programs to test strictness, and
calling ProgramStringNotify on the results of a failed program parse resulted
in crashes in the 965 driver.
Eric Anholt [Tue, 15 Jan 2008 18:12:38 +0000 (10:12 -0800)]
[965] Increase max relocation count, fixing assertions by blender.
Kristian Høgsberg [Tue, 15 Jan 2008 15:23:15 +0000 (10:23 -0500)]
[i915] Prevent recursive batchbuffer flushing.
Workaround for recursive batchbuffer flushing: If the window is
moved, we can get into a case where we try to flush during a
flush. What happens is that when we try to grab the lock for
the first flush, we detect that the window moved which then
causes another flush (from the intel_draw_buffer() call in
intelUpdatePageFlipping()). To work around this we reset the
batchbuffer tail pointer before trying to get the lock. This
prevent the nested buffer flush, but a better fix would be to
avoid that in the first place.
Zou Nan hai [Tue, 15 Jan 2008 07:19:09 +0000 (15:19 +0800)]
i965: fix an assert fail in brw_new_batch
Eric Anholt [Mon, 14 Jan 2008 23:19:43 +0000 (15:19 -0800)]
[i915] Fix recursive lock hang in intelContendedLock handling.
Eric Anholt [Sat, 12 Jan 2008 01:03:51 +0000 (17:03 -0800)]
[intel] Delay unmapping of driver-private buffers to reduce map/unmap thrashing.
Good for a 10-15% improvement to OA.
Eric Anholt [Sat, 12 Jan 2008 00:00:50 +0000 (16:00 -0800)]
[965] Force a new vertex upload buffer at new batch time.
Otherwise, we could choose to upload into the temporary VBO that we just fired
off to the hardware. Good for a 60% OA performance improvement.
Dan Nicholson [Sun, 30 Dec 2007 16:41:53 +0000 (08:41 -0800)]
Allow osmesa to be enabled or disabled
The conditional in src/mesa/Makefile currently hardcodes the cases where
libOSMesa can be built on libGL. Likewise, the xlib case always includes
libOSMesa in the stand-alone target.
This changes the conditional to a loop over the DRIVER_DIRS variable.
This means that any driver configuration can enable or disable osmesa.
The current "stand-alone" rule is changed so that DRIVER_DIRS=x11 and
DRIVER_DIRS="x11 osmesa" are both respected.
The configure option is changed to --enable-gl-osmesa as this change
allows libOSMesa to be built upon any of the libGL-enabling drivers.
Eric Anholt [Thu, 10 Jan 2008 23:05:39 +0000 (15:05 -0800)]
[965] Remove an open-coded memcpy.
Eric Anholt [Thu, 10 Jan 2008 22:50:06 +0000 (14:50 -0800)]
[intel] Remove gratuitous (batchbuffer) flush before doing buffer clears.
Increases OA performance by about 3%.
Eric Anholt [Thu, 10 Jan 2008 22:43:43 +0000 (14:43 -0800)]
[intel] Report buffer size when allocating with INTEL_DEBUG=bufmgr and TTM.
Eric Anholt [Thu, 10 Jan 2008 22:43:16 +0000 (14:43 -0800)]
[965] Improve performance by allocating CURBE buffers a page at a time.
Since each one is only 64b, and kernel allocations are a page anyway, this
lets us reduce buffer allocation by packing many CURBEs into one buffer, for
each batchbuffer submitted. Improves openarena performance by around 10%.
Eric Anholt [Thu, 10 Jan 2008 21:46:49 +0000 (13:46 -0800)]
[intel] Remove a gratuitous flush at the end of ClearWithTris.
Eric Anholt [Thu, 10 Jan 2008 21:24:14 +0000 (13:24 -0800)]
[intel] Only flush batch when changing draw buffers, not every cliprect update.
The previous code would reference freed memory on window moves.
Eric Anholt [Thu, 10 Jan 2008 18:48:05 +0000 (10:48 -0800)]
[intel] Add more cliprect modes to cover other meanings for batch emits.
The previous change gave us only two modes, one which looped over the batch
per cliprect (3d drawing) and one that didn't (state updeast).
However, we really want 4:
- Batch doesn't care about cliprects (state updates)
- Batch needs DRAWING_RECTANGLE looping per cliprect (3d drawing)
- Batch needs to be executed just once (region fills, copies, etc.)
- Batch already includes cliprect handling, and must be flushed by unlock time
(copybuffers, clears).
All callers should now be fixed to use one of these states for any batchbuffer
emits. Thanks to Keith Whitwell for pointing out the failure.
Xiang, Haihao [Thu, 10 Jan 2008 08:48:33 +0000 (16:48 +0800)]
i965: fix bug #14002
Xiang, Haihao [Thu, 10 Jan 2008 08:45:35 +0000 (16:45 +0800)]
Kristian Høgsberg [Wed, 9 Jan 2008 21:55:32 +0000 (16:55 -0500)]
[intel] Simplify intelCreateBuffer() a bit.
Drop a bunch of unused arguments from intel_create_renderbuffer() and
introduce intel_renderbuffer_set_region() to set the region for
a renderbuffer.
Kristian Høgsberg [Thu, 10 Jan 2008 01:43:06 +0000 (20:43 -0500)]
[intel] Prepare intelCopyBuffer() for private back buffers.
Kristian Høgsberg [Wed, 9 Jan 2008 23:04:19 +0000 (18:04 -0500)]
Factor out code to do the DRM_I830_GETPARAM ioctl.
Kristian Høgsberg [Wed, 9 Jan 2008 20:55:05 +0000 (15:55 -0500)]
Fold DoBindContext() helper function into driBindContext().
Eric Anholt [Wed, 9 Jan 2008 22:30:09 +0000 (14:30 -0800)]
[intel] Re-allocate backing buffer objects on BufferData.
This may allow better concurrency (noop in openarena performance now), but is
also important for the previous commit -- otherwise, we may end up with
BufferData, draw_prims, BufferData and the draw_prims would use the new VBO
data instead of old. This could still occur with user-supplied VBOs and poor
use of MapBuffer without BufferData.
Eric Anholt [Wed, 9 Jan 2008 22:21:52 +0000 (14:21 -0800)]
[965] Allow more than one draw_prims per batchbuffer.
The comment about (vbo)_exec_api.c appeared to be stale, as the VBO code seems
to only use non-named VBOs (not actual VBOs) or freshly-allocated VBO data.
This brings a 2x speedup to openarena, because we can submit nearly-full
batchbuffers instead of many 450-byte ones.
Eric Anholt [Wed, 9 Jan 2008 22:08:12 +0000 (14:08 -0800)]
[965] Replace the always_update dirty flag with BRW_NEW_BATCH.
This allows us to avoid re-emitting some state when validate_state happens
multiple times per batchbuffer. Even though we flush batch per primitive
currently, that may still happen already if the primitive changed (this should
probably be fixed as well).
Eric Anholt [Wed, 9 Jan 2008 21:40:40 +0000 (13:40 -0800)]
[intel] Rename lost_hardware vtbl entry to new_batch.
Both drivers have ended up relying on lost_hardware being called after each
batch buffer, so update the name. This removes one of the calls on 965 whic
h was outside of the batchbuffer handling code and just duplicating what had
already happened through batchbuffer handling.
Eric Anholt [Wed, 9 Jan 2008 21:24:29 +0000 (13:24 -0800)]
[965] Remove drawing rect upload, which is handled (better) by the kernel.
Eric Anholt [Wed, 9 Jan 2008 20:33:39 +0000 (12:33 -0800)]
[intel] Clean up cliprect handling in intel drivers.
In particular, batch buffers are no longer flushed when switching from
CLIPRECTS to NO_CLIPRECTS or vice versa, and 965 just uses DRM cliprect
handling for primitives instead of trying to sneak in its own to avoid the
DRM stuff. The disadvantage is that we will re-execute state updates per
cliprect, but the advantage is that we will be able to accumulate larger
batch buffers, which were proving to be a major overhead.
Eric Anholt [Wed, 9 Jan 2008 20:41:14 +0000 (12:41 -0800)]
[intel] Remove the dead intel->need_flush member.
Eric Anholt [Wed, 9 Jan 2008 00:20:28 +0000 (16:20 -0800)]
[965] Clarify a bit of index buffer upload code.
Brian [Wed, 9 Jan 2008 21:19:50 +0000 (14:19 -0700)]
fix bug 13978: glDrawBuffersARB() didn't set all necessary state
Eric Anholt [Fri, 4 Jan 2008 23:55:59 +0000 (15:55 -0800)]
[intel] Add TTM bufmgr debug for type or offset migration of buffers.
Xiang, Haihao [Mon, 7 Jan 2008 06:08:36 +0000 (14:08 +0800)]
i915: Keith Whitwell's swizzling TEX patch. fix #8283
Brian [Mon, 7 Jan 2008 01:07:26 +0000 (18:07 -0700)]
Replace gl_framebuffer's _ColorDrawBufferMask with _ColorDrawBufferIndexes
Each array element is now a BUFFER_x token rather than a BUFFER_BIT_x bitmask.
The number of active color buffers is specified by _NumColorDrawBuffers.
This builds on the previous DrawBuffer changes and will help with drivers
implementing GL_ARB_draw_buffers.
Brian [Sun, 6 Jan 2008 17:43:20 +0000 (10:43 -0700)]
Simplify ctx->_NumColorDrawBuffers, _ColorDrawBuffers and fix bug 13835.
These fields are no longer indexed by shader output. Now, we just have
a simple array of renderbuffer pointers.
If the shader writes to gl_FragData[i], send those colors to the N
_ColorDrawBuffers. Otherwise, replicate the single gl_FragColor (or
the fixed-function color) to the N _ColorDrawBuffers.
A few more changes and simplifications can follow from this...
Brian [Sat, 5 Jan 2008 22:37:27 +0000 (15:37 -0700)]
fix depth/1 typo in glTexImage3D proxy code
Brian [Fri, 4 Jan 2008 00:17:22 +0000 (17:17 -0700)]
check if span length > 0 before calling _swrast_write_rgba_span()
Xiang, Haihao [Fri, 4 Jan 2008 09:11:39 +0000 (17:11 +0800)]
i915: don't validate PS program when falling back to software
rendering. fix #12786
Xiang, Haihao [Fri, 4 Jan 2008 06:22:23 +0000 (14:22 +0800)]
intel: some initialization for dri_bufmgr_ttm
Eric Anholt [Fri, 4 Jan 2008 00:08:40 +0000 (16:08 -0800)]
[intel] Add a single-entry relocation buffer cache.
By avoiding the repeated relocation buffer creation/map/unmap/destroy for each
new batch buffer, this improves OpenArena framerates by 30%. Caching batch
buffers themselves doesn't appear to be a significant performance win over
this change.
Eric Anholt [Thu, 3 Jan 2008 00:55:21 +0000 (16:55 -0800)]
[intel] Convert relocations to not be cleared out on buffer submit.
We have two consumers of relocations. One is static state buffers, which
want the same relocation every time. The other is the batchbuffer, which gets
thrown out immediately after submit. This lets us reduce repeated computation
for static state buffers, and clean up the code by moving relocations nearer
to where the state buffer is computed.
Eric Anholt [Thu, 3 Jan 2008 22:47:35 +0000 (14:47 -0800)]
[965] Fix some missing initialization in WM keys.
Zou Nan hai [Thu, 3 Jan 2008 08:05:27 +0000 (16:05 +0800)]
fix fd.o bug #13761
MRD computation is now changed in mesa core
Eric Anholt [Wed, 2 Jan 2008 23:47:47 +0000 (15:47 -0800)]
[965] Convert WM unit to use a cache key instead of brw_cache_data.
Eric Anholt [Wed, 2 Jan 2008 23:03:32 +0000 (15:03 -0800)]
[965] Convert VS unit to use a cache key instead of brw_cache_data.