summaryrefslogtreecommitdiff
path: root/src/mesa/drivers
AgeCommit message (Collapse)Author
2007-12-20[intel] Allow driver hooks to be NULL in intel_buffers.c and just update flags.Eric Anholt
The 965 driver relies on flag checking instead of these hooks, and will be using this code soon.
2007-12-20[i915] Move meta_draw_quad into the vtbl with other meta operations.Eric Anholt
2007-12-20i915: avoid dead lock in intel_meta_draw_poly. fix #13696Xiang, Haihao
2007-12-18[915] Set cliprects in the drawbuffer software fallback case as well.Eric Anholt
Otherwise, we may violate cliprect asssertions on clearing the buffers, which isn't affected by the fallback.
2007-12-19i965: allocate GRF registers before building subroutines,Xiang, Haihao
it ensures there are sufficient registers for all subroutines.
2007-12-19i965: restore the flag after building the subroutine of theXiang, Haihao
GS thread. fix #13240
2007-12-18[915] Free dri_bufmgr after mesa context data.Eric Anholt
Fixes a crash when buffer objects are left around until context destroy.
2007-12-18[915] Make polygon stipple use pre-unpacked pixel data.Eric Anholt
This fixes a crash when stippling using data from a PBO.
2007-12-18[915] Fix clear color when clearing with triangles.Eric Anholt
The diffuse color format is always ARGB32, regardless of the destination surface format.
2007-12-18[INTEL] Fix 965 to use new centralized mipmap pitch functionKeith Packard
2007-12-18[Intel] Centralize mipmap pitch computations.Keith Packard
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.
2007-12-17[i915] Remove redundant set_draw_region code (like the comment says).Eric Anholt
2007-12-17[intel] Improve INTEL_DEBUG=blit description of clearing.Eric Anholt
2007-12-17[intel] Fix copy'n'pasteo in decoding of the blit clear packet.Eric Anholt
2007-12-17[965] Add decode of 3DSTATE_DRAWING_RECTANGLE.Eric Anholt
2007-12-17[965] Allow draw or depth regions to be NULL.Eric Anholt
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.
2007-12-17[965] Simplify scissor handling by using DrawBuffer values.Eric Anholt
2007-12-17[965] fix bad conflict resolution in debug code.Eric Anholt
2007-12-17[965] Replace our own depth constants in intel context with GL context ones.Eric Anholt
2007-12-17[965] Fix software fallbacks with region-backed textures.Eric Anholt
2007-12-17[intel] Cleanup of */intel_blit.c to bring the two closer.Eric Anholt
2007-12-17[965] Output the buffer type in INTEL_DEBUG=bat surface state decode.Eric Anholt
2007-12-17i915: Fix issues with glDrawBuffer(GL_NONE).Michel Dänzer
Don't dereference NULL renderbuffer pointer, and make sure the software fallback sticks. Fixes https://bugs.freedesktop.org/show_bug.cgi?id=13694 .
2007-12-17i965: check NULL pointerXiang, Haihao
2007-12-16[i915] Fix missing symbol from 965 changes.Eric Anholt
2007-12-16[965] Fully initialize the texture surface key data (padding around GLboolean)Eric Anholt
2007-12-16[965] Enable ARB_pixel_buffer_object, and disable broken imaging extension.Eric Anholt
While I haven't tested the imaging extension, this matches what 915 does.
2007-12-16[965] Move to using shared texture management code.Eric Anholt
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.
2007-12-15[intel] Whitespace and comment changes to bring intel_mipmap_tree.c closer.Eric Anholt
2007-12-15[intel] Merge intel_buffer_objects to shared.Eric Anholt
965 gains fixed TTM typing of the buffer object buffers and unused PBO functions, and 915 gains buffer size == 0 fixes from 965.
2007-12-15[965] Use shared intel_regions.c.Eric Anholt
This adds (so far) unused PBO functions, and holding the lock while writing to regions (which may be shared static screen regions).
2007-12-14[intel] Fix uninitialized data in screen-region buffer objects.Eric Anholt
2007-12-14[intel] Remove excessive validation debugging.Eric Anholt
2007-12-14[intel] Initialize debug flag for dri_bufmgrsEric Anholt
2007-12-14[intel] Remove useless intel_region_idle.Eric Anholt
The idling it was trying to ensure was covered by the intel_miptree_image_map()->intel_region_map() that immediately followed it.
2007-12-14[intel] warnings cleanupEric Anholt
2007-12-14[intel] Remove the relocation buffer lists and just cache one per buffer.Eric Anholt
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.
2007-12-14[965] Replace the state cache suballocator with direct dri_bufmgr use.Eric Anholt
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.
2007-12-13[intel] Remove broken mutex protection from dri_bufmgrs.Eric Anholt
Now that the dri_bufmgr is stored in the context rather than the screen, all access to one is single-threaded anyway.
2007-12-13[intel] Enable INTEL_DEBUG=bufmgr output in TTM mode as well as classic.Eric Anholt
2007-12-13[intel] assert that buffers are not mapped at last unreference.Eric Anholt
bufmgr_fake doesn't care about it, but with ttm we would end up with the buffer remaining referenced until application exit.
2007-12-12[intel] Assert against conflicting relocation emits in bufmgr_fake.cEric Anholt
2007-12-12[965] Bug #13600: Fix assertion failure with SRGB textures.Eric Anholt
I broke this with cherry-pick resolving on 93c98a466947570e0589b662df49095b2f4bc43c.
2007-12-12[intel] Move bufmgr back to context instead of screen, fixing glthreads.Eric Anholt
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.
2007-12-11Block in kernel waiting for fenceKeith Packard
2007-12-11Use previous buffer offsets to compute proposed relocationsKeith Packard
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.
2007-12-10[965] Hook up DEBUG_BUFMGR output for bufmgr_fake.Eric Anholt
2007-12-07[965] Convert the driver to dri_bufmgr interface and enable TTM.Eric Anholt
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.
2007-12-07[965] Remove dead code in upload_wm_surfaces.Eric Anholt
2007-12-07[965] Move brw_surface_state stack allocation into the function using it.Eric Anholt