Eric Anholt [Tue, 18 Dec 2007 22:17:27 +0000 (14:17 -0800)]
[915] Free dri_bufmgr after mesa context data.
Fixes a crash when buffer objects are left around until context destroy.
Eric Anholt [Tue, 18 Dec 2007 22:14:44 +0000 (14:14 -0800)]
[915] Make polygon stipple use pre-unpacked pixel data.
This fixes a crash when stippling using data from a PBO.
Eric Anholt [Tue, 18 Dec 2007 18:41:44 +0000 (10:41 -0800)]
[915] Fix clear color when clearing with triangles.
The diffuse color format is always ARGB32, regardless of the destination
surface format.
Keith Packard [Tue, 18 Dec 2007 18:18:33 +0000 (10:18 -0800)]
[INTEL] Fix 965 to use new centralized mipmap pitch function
Keith Packard [Tue, 18 Dec 2007 06:43:48 +0000 (22:43 -0800)]
[Intel] Centralize mipmap pitch computations.
mipmap pitches must account for the device alignment requirements, which
used to be fairly simple; just align to a 4-byte boundary. However, to allow
textures to be drawn to under TTM, they now need to be aligned to a 64-byte
boundary. Placing all of the alignment constraints in a single function
allows this new constraint to be applied uniformly.
There was some pitch constraining code in intel_miptree_create, but that was
modifying the pitch long after the miptree had been layed out, so it only
served to wreck the mipmap and cause rendering errors.
Eric Anholt [Tue, 18 Dec 2007 01:01:07 +0000 (17:01 -0800)]
[i915] Remove redundant set_draw_region code (like the comment says).
Eric Anholt [Tue, 18 Dec 2007 00:56:59 +0000 (16:56 -0800)]
[intel] Improve INTEL_DEBUG=blit description of clearing.
Eric Anholt [Tue, 27 Nov 2007 18:57:28 +0000 (10:57 -0800)]
[intel] Fix copy'n'pasteo in decoding of the blit clear packet.
Eric Anholt [Tue, 27 Nov 2007 18:16:58 +0000 (10:16 -0800)]
[965] Add decode of 3DSTATE_DRAWING_RECTANGLE.
Eric Anholt [Tue, 18 Dec 2007 00:50:09 +0000 (16:50 -0800)]
[965] Allow draw or depth regions to be NULL.
With FBOs, we end up wanting to do 3D metaops against one or the other without
having to find the other one to fill in if we're not going to draw to it.
Eric Anholt [Mon, 17 Dec 2007 22:51:24 +0000 (14:51 -0800)]
[965] Simplify scissor handling by using DrawBuffer values.
Eric Anholt [Mon, 17 Dec 2007 22:42:21 +0000 (14:42 -0800)]
[965] fix bad conflict resolution in debug code.
Eric Anholt [Mon, 17 Dec 2007 22:28:54 +0000 (14:28 -0800)]
[965] Replace our own depth constants in intel context with GL context ones.
Eric Anholt [Mon, 17 Dec 2007 21:47:52 +0000 (13:47 -0800)]
[965] Fix software fallbacks with region-backed textures.
Eric Anholt [Mon, 17 Dec 2007 21:19:33 +0000 (13:19 -0800)]
[intel] Cleanup of */intel_blit.c to bring the two closer.
Eric Anholt [Mon, 17 Dec 2007 19:11:18 +0000 (11:11 -0800)]
[965] Output the buffer type in INTEL_DEBUG=bat surface state decode.
Michel Dänzer [Mon, 17 Dec 2007 11:20:56 +0000 (12:20 +0100)]
i915: Fix issues with glDrawBuffer(GL_NONE).
Don't dereference NULL renderbuffer pointer, and make sure the software
fallback sticks.
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=13694 .
Xiang, Haihao [Mon, 17 Dec 2007 06:42:42 +0000 (14:42 +0800)]
i965: check NULL pointer
Eric Anholt [Sun, 16 Dec 2007 21:00:23 +0000 (13:00 -0800)]
[i915] Fix missing symbol from 965 changes.
Eric Anholt [Sun, 16 Dec 2007 20:09:22 +0000 (12:09 -0800)]
[965] Fully initialize the texture surface key data (padding around GLboolean)
Eric Anholt [Sun, 16 Dec 2007 19:46:10 +0000 (11:46 -0800)]
[965] Enable ARB_pixel_buffer_object, and disable broken imaging extension.
While I haven't tested the imaging extension, this matches what 915 does.
Eric Anholt [Sun, 16 Dec 2007 00:12:17 +0000 (16:12 -0800)]
[965] Move to using shared texture management code.
This removes the delayed texture upload optimization from 965, in exchange for
bringing us closer to PBO support. It also disables SGIS_generate_mipmap,
which didn't seem to be working before anyway, according to the lodbias demo.
Eric Anholt [Sat, 15 Dec 2007 21:09:58 +0000 (13:09 -0800)]
[intel] Whitespace and comment changes to bring intel_mipmap_tree.c closer.
Eric Anholt [Sat, 15 Dec 2007 20:47:23 +0000 (12:47 -0800)]
[intel] Merge intel_buffer_objects to shared.
965 gains fixed TTM typing of the buffer object buffers and unused PBO
functions, and 915 gains buffer size == 0 fixes from 965.
Eric Anholt [Sat, 15 Dec 2007 00:00:48 +0000 (16:00 -0800)]
[965] Use shared intel_regions.c.
This adds (so far) unused PBO functions, and holding the lock while writing
to regions (which may be shared static screen regions).
Eric Anholt [Fri, 14 Dec 2007 22:56:01 +0000 (14:56 -0800)]
[intel] Fix uninitialized data in screen-region buffer objects.
Eric Anholt [Fri, 14 Dec 2007 22:52:15 +0000 (14:52 -0800)]
[intel] Remove excessive validation debugging.
Eric Anholt [Fri, 14 Dec 2007 22:51:55 +0000 (14:51 -0800)]
[intel] Initialize debug flag for dri_bufmgrs
Eric Anholt [Fri, 14 Dec 2007 21:28:39 +0000 (13:28 -0800)]
[intel] Remove useless intel_region_idle.
The idling it was trying to ensure was covered by the
intel_miptree_image_map()->intel_region_map() that immediately followed it.
Eric Anholt [Fri, 14 Dec 2007 20:52:17 +0000 (12:52 -0800)]
[intel] warnings cleanup
Brian [Fri, 14 Dec 2007 21:34:15 +0000 (14:34 -0700)]
fix polygon cull regression
Brian [Wed, 12 Dec 2007 15:05:12 +0000 (08:05 -0700)]
Build rain demo (Gonzo <andreas.wendleder@gmail.com>)
Eric Anholt [Wed, 12 Dec 2007 22:38:38 +0000 (14:38 -0800)]
[intel] Remove the relocation buffer lists and just cache one per buffer.
Each buffer object now has a relocation buffer pointer, which contains the
relocations for the buffer if there are any. At the point where we have to
create a new type of relocation entry, we can change the code over to allowing
multiple relocation lists, but trying to anticipate what that'll look like
now just increases complexity.
This is a 30% performance improvement on 965.
Eric Anholt [Fri, 14 Dec 2007 19:02:48 +0000 (11:02 -0800)]
[965] Replace the state cache suballocator with direct dri_bufmgr use.
The user-space suballocator that was used avoided relocation computations by
using the general and surface state base registers and allocating those types
of buffers out of pools built on top of single buffer objects. It also
avoided calls into the buffer manager for these small state allocations, since
only one buffer object was being used.
However, the buffer allocation cost appears to be low, and with relocation
caching, computing relocations for buffers is essentially free. Additionally,
implementing the suballocator required a don't-fence-subdata flag to disable
waiting on buffer maps so that writing new data didn't block on rendering using
old data, and careful handling when mapping to update old data (which we need
to do for unavoidable relocations with FBOs). More importantly, when the
suballocator filled, it had no replacement algorithm and just threw out all
of the contents and forced them to be recomputed, which is a significant cost.
This is the first step, which just changes the buffer type, but doesn't yet
improve the hash table to not result in full recompute on overflow. Because
the buffers are all allocated out of the general buffer allocator, we can
no longer use the general/surface state bases to avoid relocations, and they
are set to 0 instead.
Eric Anholt [Fri, 14 Dec 2007 01:05:21 +0000 (17:05 -0800)]
[intel] Remove broken mutex protection from dri_bufmgrs.
Now that the dri_bufmgr is stored in the context rather than the screen, all
access to one is single-threaded anyway.
Eric Anholt [Fri, 14 Dec 2007 00:49:55 +0000 (16:49 -0800)]
[intel] Enable INTEL_DEBUG=bufmgr output in TTM mode as well as classic.
Eric Anholt [Thu, 13 Dec 2007 09:01:31 +0000 (01:01 -0800)]
[intel] assert that buffers are not mapped at last unreference.
bufmgr_fake doesn't care about it, but with ttm we would end up with the
buffer remaining referenced until application exit.
Eric Anholt [Tue, 11 Dec 2007 21:21:14 +0000 (13:21 -0800)]
[intel] Assert against conflicting relocation emits in bufmgr_fake.c
Eric Anholt [Wed, 12 Dec 2007 20:09:07 +0000 (12:09 -0800)]
[965] Bug #13600: Fix assertion failure with SRGB textures.
I broke this with cherry-pick resolving on
93c98a466947570e0589b662df49095b2f4bc43c.
Eric Anholt [Wed, 12 Dec 2007 18:25:19 +0000 (10:25 -0800)]
[intel] Move bufmgr back to context instead of screen, fixing glthreads.
Putting the bufmgr in the screen is not thread-safe since the emit_reloc
changes. It also led to a significant performance hit from pthread usage
for the attempted thread-safety (up to 12% of a cpu spent on refcounting
protection in single-threaded 965). The motivation had been to allow
multi-context bufmgr sharing in classic mode, but it wasn't worth the cost.
Keith Packard [Wed, 12 Dec 2007 04:27:13 +0000 (20:27 -0800)]
Block in kernel waiting for fence
Keith Packard [Thu, 6 Dec 2007 22:11:34 +0000 (14:11 -0800)]
Use previous buffer offsets to compute proposed relocations
This takes advantage of the DRM_BO_HINT_PRESUMED_OFFSET change and allows
the kernel to avoid mapping and re-writing buffers when relocations occur.
Roland Scheidegger [Tue, 11 Dec 2007 14:37:47 +0000 (15:37 +0100)]
add simple test for two-sided stencil functionality
Roland Scheidegger [Thu, 29 Nov 2007 02:08:18 +0000 (03:08 +0100)]
make sure state token values are fully initialized
Eric Anholt [Mon, 10 Dec 2007 22:58:53 +0000 (14:58 -0800)]
[965] Hook up DEBUG_BUFMGR output for bufmgr_fake.
Eric Anholt [Sat, 8 Dec 2007 00:15:49 +0000 (16:15 -0800)]
[965] Convert the driver to dri_bufmgr interface and enable TTM.
This is currently believed to work but be a significant performance loss.
Performance recovery should be soon to follow.
The dri_bo_fake_disable_backing_store() call was added to allow backing store
disable like bufmgr_fake.c did, which is a significant performance win (though
it's missing the no-fence-subdata part).
This commit is a squash merge of the 965-ttm branch, which had some history
I wanted to avoid pulling due to noisiness and brokenness at many points
for git-bisecting.
Eric Anholt [Fri, 7 Dec 2007 23:20:00 +0000 (15:20 -0800)]
[965] Remove dead code in upload_wm_surfaces.
Eric Anholt [Fri, 7 Dec 2007 23:16:42 +0000 (15:16 -0800)]
[965] Move brw_surface_state stack allocation into the function using it.
Dan Nicholson [Thu, 6 Dec 2007 04:34:59 +0000 (20:34 -0800)]
Make osdemos linking like other programs
Most of the programs list their dependencies on the Mesa libraries in
their Makefiles. This works with the default configuration where
APP_LIB_DEPS only lists external libraries. This changes the
linux-osmesa configs and the osdemos Makefile to follow that convention.
Some cleanup of the Makefile is also added to refer to the GL libraries
through the existing variables rather than hardcoding their names.
Dan Nicholson [Thu, 1 Nov 2007 00:12:07 +0000 (17:12 -0700)]
configs: Fix linking with static libGL and --as-needed
Linking of the programs breaks when using a static libGL and the GNU ld
option --as-needed. This is because libXext is needed for the XShm
functions.
Xiang, Haihao [Fri, 7 Dec 2007 09:33:18 +0000 (17:33 +0800)]
i915: fix the error in the previos commit.
Xiang, Haihao [Fri, 7 Dec 2007 09:26:38 +0000 (17:26 +0800)]
i915: Check the program size when uploading a program. fix bug 13494
Michel Dänzer [Thu, 6 Dec 2007 09:19:22 +0000 (10:19 +0100)]
Minor followup fixes for the previous commit.
George Nassas [Thu, 6 Dec 2007 09:11:05 +0000 (10:11 +0100)]
Always call dlopen in DriverOpen.
This increases the reference count for the driver binary, preventing it from
getting unloaded prematurely in driDestroyDisplay. See
https://bugs.freedesktop.org/show_bug.cgi?id=13541 .
Eric Anholt [Thu, 6 Dec 2007 00:57:27 +0000 (16:57 -0800)]
Revert "[965] Add missing flagging of new stage programs for updating stage state."
I had forgotten part of brw_state_cache.c that made this fix not relevant for
master (last_addr comparison and flagging based on cache id).
This reverts commit
a4642f3d18bdaebaba31e5dee72fe5de9d890ffb.
Eric Anholt [Wed, 5 Dec 2007 23:52:13 +0000 (15:52 -0800)]
[965] Add missing flagging of new stage programs for updating stage state.
Otherwise, choosing a new program wouldn't necessarily update the state, and
and an old program could be executed, leading to various sorts of pretty
pictures or hangs.
Brian [Wed, 5 Dec 2007 22:06:23 +0000 (15:06 -0700)]
Fix endianness bug in _mesa_texstore_argb8888()
On big-endian, storing in _mesa_texformat_argb8888 format produced wrong res
Also, clean-up nearby code to match.
picked from gallium-0.1 branch
Xiang, Haihao [Wed, 5 Dec 2007 02:31:35 +0000 (10:31 +0800)]
Don't Swap buffer if a DRIDrawable is entirely obscured
by another window.
Brian [Wed, 5 Dec 2007 01:44:40 +0000 (18:44 -0700)]
Undo changes made to the toyball shaders in commit
d19d0596daf004b56d80f78fa1a329b43c2ebf94
This demo produces the expected results again.
Brian [Tue, 4 Dec 2007 21:06:10 +0000 (14:06 -0700)]
fix span->facing computation and gl_FrontFacing initialization
Brian [Tue, 4 Dec 2007 21:05:26 +0000 (14:05 -0700)]
Fix gl_FrontFacing compilation problem
Brian [Tue, 4 Dec 2007 17:48:05 +0000 (10:48 -0700)]
added culling/wireframe options
Michel Dänzer [Tue, 4 Dec 2007 09:46:45 +0000 (10:46 +0100)]
Use -Bsymbolic for linking all shared objects.
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=10132 .
Also remove comment about SONAME, as SONAME only applies to shared libraries.
Eric Anholt [Mon, 3 Dec 2007 18:58:08 +0000 (10:58 -0800)]
[965] Change constant buffer from state structs to plain batch emission.
Reduces diff to branch which has a relocation in this state emit.
Brian [Mon, 3 Dec 2007 21:14:16 +0000 (14:14 -0700)]
fix DD_TRI_LIGHT_TWOSIDE bug (#13368)
Dan Nicholson [Mon, 3 Dec 2007 19:57:14 +0000 (11:57 -0800)]
Fix the library name in glw.pc
Fix a copy and paste error s/GLU/GLw/ in glw.pc.
Brian [Mon, 3 Dec 2007 18:58:55 +0000 (11:58 -0700)]
glut doesn't need -lXt
Brian [Mon, 3 Dec 2007 18:57:56 +0000 (11:57 -0700)]
added missing quote char
Michel Dänzer [Fri, 30 Nov 2007 10:40:06 +0000 (11:40 +0100)]
i915: Fix up state changes for i8xx.
Eric Anholt [Sat, 1 Dec 2007 02:17:12 +0000 (18:17 -0800)]
[intel] Move batch bo_unmap from TTM code to shared, and add more asserts.
Eric Anholt [Sat, 1 Dec 2007 02:12:23 +0000 (18:12 -0800)]
[intel] Add failure path printfs to relocation code and some comments.
Eric Anholt [Sat, 1 Dec 2007 02:08:17 +0000 (18:08 -0800)]
[intel] Simplify TTM relocation code by passing around bufmgr struct.
Eric Anholt [Fri, 30 Nov 2007 22:15:36 +0000 (14:15 -0800)]
[intel] Fix the type and naming of the flags/mask args to TTM functions.
The uint64_t flags (as defined by drm.h) were being used as unsigned ints in
many places.
Eric Anholt [Fri, 30 Nov 2007 22:14:11 +0000 (14:14 -0800)]
[intel] intel_bufmgr_ttm style sanity
Brian [Fri, 30 Nov 2007 22:52:27 +0000 (15:52 -0700)]
fix-build: remove ctx->_Facing assignment
Brian [Fri, 30 Nov 2007 20:01:57 +0000 (13:01 -0700)]
fix broken two-sided stencil
Brian [Fri, 30 Nov 2007 16:07:39 +0000 (09:07 -0700)]
better front-plane clip test
joukj [Fri, 30 Nov 2007 12:16:05 +0000 (13:16 +0100)]
Updates of some OpenVMS makefiles.
joukj [Fri, 30 Nov 2007 10:12:41 +0000 (11:12 +0100)]
Merge branch 'master' of git+ssh://joukj@git.freedesktop.org/git/mesa/mesa
Xiang, Haihao [Fri, 30 Nov 2007 04:04:04 +0000 (12:04 +0800)]
i965: if source depth to render target is set,
it should be handled in fb_write.
Xiang, Haihao [Fri, 30 Nov 2007 03:50:08 +0000 (11:50 +0800)]
i965: use uncompressed instruction to ensure only
Pixel Mask Copy is modified as the pixel shader thread
turns off pixels based on kill instructions.
Eric Anholt [Thu, 29 Nov 2007 21:00:34 +0000 (13:00 -0800)]
[i915] Make INTEL_DEBUG=bufmgr actually do things for bufmgr_fake.
Brian [Thu, 29 Nov 2007 15:12:33 +0000 (08:12 -0700)]
New ctx->Driver.Map/UnmapTexture() functions for accessing textures from t_vb_program.c
Brian [Wed, 28 Nov 2007 22:55:57 +0000 (15:55 -0700)]
cleanups, comments
Brian [Wed, 28 Nov 2007 22:19:46 +0000 (15:19 -0700)]
Move _mesa_load_tracked_matrices() from TNL module to prog_statevars.c
Michel Dänzer [Wed, 28 Nov 2007 09:20:04 +0000 (10:20 +0100)]
r200: Fix texture format regression on big endian systems.
See https://bugs.freedesktop.org/show_bug.cgi?id=13324 .
Also use tx_table_be for VALID_FORMAT, in case r200SetTexImages ever gets
called for MESA_FORMAT_RGB888.
Xiang, Haihao [Wed, 28 Nov 2007 01:46:43 +0000 (09:46 +0800)]
i965: update RefCount when using Vertex/Fragment program.
It makes quake4-demo works well on 965.
WuNian [Wed, 28 Nov 2007 01:22:42 +0000 (18:22 -0700)]
remove drawable from hash table when window is deleted (see bug 13091)
Delle [Wed, 28 Nov 2007 01:18:25 +0000 (18:18 -0700)]
use DEFAULT_SOFTWARE_DEPTH_BITS
Brian [Tue, 27 Nov 2007 17:31:05 +0000 (10:31 -0700)]
minor additions to avoid FAQs
Brian [Tue, 27 Nov 2007 17:27:55 +0000 (10:27 -0700)]
document GLSL float f/F suffix bug
Brian [Tue, 27 Nov 2007 17:16:51 +0000 (10:16 -0700)]
set fp->UsesKill when emitting OPCODE_KIL
Brian [Mon, 26 Nov 2007 18:39:17 +0000 (11:39 -0700)]
add a few more logicop modes, simplify code
Brian [Mon, 26 Nov 2007 16:35:39 +0000 (09:35 -0700)]
improve 24-bit Z to 32-bit Z conversion
Xiang, Haihao [Tue, 27 Nov 2007 01:45:32 +0000 (09:45 +0800)]
i965: The jump instruction count is added
to IP pre-increment, and should point to
the first instruction after the do instruction
of the do-while block of code
Keith Whitwell [Thu, 15 Nov 2007 09:59:33 +0000 (09:59 +0000)]
i915: Catch cases where not all state is emitted for a new batchbuffer.
This could lead to incorrect rendering or even lockups.
Michel Dänzer [Fri, 9 Nov 2007 17:46:55 +0000 (18:46 +0100)]
i915: Some additional blit fixes and assertions.
Michel Dänzer [Sun, 25 Nov 2007 13:20:36 +0000 (14:20 +0100)]
libGL: Make sure a valid value is returned for GLX_BIND_TO_MIPMAP_TEXTURE_EXT.
If the server didn't send a value, assume it's not supported.
A more generic solution might be better for this kind of problem, but an
attempt for this failed (see https://bugs.freedesktop.org/show_bug.cgi?id=9264)
and this allows compiz to work with drivers that support
GL_EXT_framebuffer_object.
Michel Dänzer [Sun, 25 Nov 2007 13:17:02 +0000 (14:17 +0100)]
intel: Fix relative symlinks.
Brian [Fri, 23 Nov 2007 23:19:25 +0000 (16:19 -0700)]
better test of point attenuation