summaryrefslogtreecommitdiff
path: root/src/i830_accel.c
AgeCommit message (Collapse)Author
2010-09-12Rename common infrastructure to the intel namespace.Owain G. Ainsworth
After splitting out the i810 driver into its own legacy directory, we can identify the common routines not as i830 but as intel. This clarifies the code which *is* i830 specific. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> (cherry picked from commit 5c663ce8442bd3b69c96e29061c57cc565fca91d) Conflicts: src/Makefile.am src/drmmode_display.c src/intel.h src/intel_batchbuffer.c src/intel_dri.c src/intel_driver.c src/intel_memory.c src/intel_video.c src/xvmc/intel_xvmc.h OGA: adapted for ums
2010-09-11i810: Move into a legacy directory.Owain G. Ainsworth
The driver is still built but is no longer under active development so move it and supporting files to a new directory. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> (cherry picked from commit 797d173a9af12055ba2609293182b616dd673ef4) Conflicts: configure.ac src/Makefile.am src/common.h src/i830.h src/i830_accel.c src/i830_batchbuffer.c src/i830_driver.c src/legacy/i810/i810_driver.c OGA: had to make abunch of changes due to ums still existing, but this was more sensible that having to modify every single cherry-picked patch from now on.
2010-06-21Emit the flush after a potential draw from the BlockHandler.Chris Wilson
As the batch submit may not trigger further drawing through flushing the vertices, pass the requirement to emit the flush down to the submission routine so that the flush can be appended after the final commands. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> (cherry picked from c942585098ac84ae461821cbb8f52dedce7a0da1) Signed-off-by: Owain G. Ainsworth <oga@openbsd.org>
2010-05-31Remove all code that pretends to work if we lack drm and gem.Owain G. Ainsworth
It doesn't work, and just adds extra complexity for no real gain by this point.
2010-03-01batch: Ensure we send a MI_FLUSH in the block handler for TFPChris Wilson
This should restore the previous level of synchronisation between textures and pixmaps, but *does not* guarantee that a texture will be flushed before use. tfp should be fixed so that the ddx can submit the batch if required to flush the pixmap. A side-effect of this patch is to rename intel_batch_flush() to intel_batch_submit() to reduce the confusion of executing a batch buffer with that of emitting a MI_FLUSH. Should fix the remaining rendering corruption involving tfp [inc compiz]: Bug 25431 [i915 bisected] piglit/texturing_tfp regressed http://bugs.freedesktop.org/show_bug.cgi?id=25431 Bug 25481 Wrong cursor format and cursor blink rate with compiz enabled http://bugs.freedesktop.org/show_bug.cgi?id=25481 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> (Cherry picked from commit cd475bad23c02130d11c49882c11261c9f0d4ef1)
2010-03-01Remove flush parameter from intel_batch_flush()Chris Wilson
There is only a single caller that wishes to forcibly append a flush into the batch: intel_sync(). So move the logic there. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> (Cherry picked from commit 98e11210367c950e3f932419d2a4722cf971885d)
2010-03-01Rename I830Sync() to intel_sync()Chris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> (cherry picked from commit 57336c26f1fb90d43851ddcf78539585b67d86d9)
2010-03-01batch: Avoid flushing a NULL batchChris Wilson
During shutdown from a FatalError during batchbuffer submission, it is possible for the batch_ptr to be NULL, so we must be careful not to append a flush on this error path. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> (cherry picked from commit 370157f4932cf9067ba81c8bd5a311aff610882b) Signed-off-by: Owain G. Ainsworth <oga@openbsd.org>
2010-03-01Review use of errno after libdrm callChris Wilson
Since drm may not actually set the appropriate errno after a failure, we must use the return code instead when determining the cause of failure. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> (cherry picked from commit b68d3646f1fdfe012c16741958c7a62136a9b5aa)
2010-03-01debug: Don't always flush the batch when emitting a debugging flushChris Wilson
I incorrectly changed the logic in 285f286 and caused the batch to always be flushed when debugging, instead of merely inserting a MI_FLUSH between operations. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> (cherry picked from commit a8ea20100de5be45699e71eb6ba67bef546ad0cd) Signed-off-by: Owain G. Ainsworth <oga@openbsd.org>
2010-03-01batch: Track pixmap domains.Chris Wilson
In order to detect when we require cache flushes we need to track which domains the pixmap currently belongs to. So to do so we create a device private structure to hold the extra information and hook it up. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> (cherry-picked from commit 285f286597df5af13ac3f3d366f2fc9d0468dafa).
2010-03-01debug: Enable cache flushing after every operationChris Wilson
If DEBUG_FLUSH_CACHES is enabled then emit a MI_FLUSH after every rendering operation. This is intended to 'fix' cases where we are missing a required flush in the middle of a sequence of operations, such as switching between 2D to 3D and render to sampler. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> (cherry picked from commit 86bc23ab5da34137c82250395c68aa92ecd88a24) Signed-off-by: Owain G. Ainsworth <oga@openbsd.org>
2010-03-01conf: Add debugging flush optionsOwain G. Ainsworth
Make the following options available via xorg.conf: Section "Driver" Option "DebugFlushBatches" "1" # Flush the batch buffer after every # single operation; Option "DebugFlushCaches" "1" # Include a MI_FLUSH at the end of every # batch buffer to force data to be # flushed out of cache and into memory # before the completion of the batch. Option "DebugWait" "1" # Wait for the completion of every batch buffer # before continuing, i.e. perform synchronous # rendering. EndSection Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> (cherry picked from commit 3c0815abf28744e215bea286e71d935cd486955a) Conflicts: src/i830.h src/i830_batchbuffer.c src/i830_driver.c
2010-03-01Rename the xv pPriv to adaptor_priv to reflect whose private it is.Owain G. Ainsworth
(cherry picked from commit 7bbf4ac7137ed0e4ec0a75806a396c12f102e779) Conflicts: src/i830_video.c
2010-03-01Call pPixmaps plain old pixmaps.Owain G. Ainsworth
(cherry picked from commit f309d475241260cf60567100511d5f7c6c487a29) Conflicts: src/i830.h src/i830_accel.c src/i830_batchbuffer.h src/i830_uxa.c
2010-03-01Rename the xf86 screen private from pScrn to scrn.Owain G. Ainsworth
(cherry picked from commit af27a3a0a5645c6f41f583611bd0f2559dc7cb2f) Conflicts: src/i830.h src/i830_accel.c src/i830_batchbuffer.c src/i830_display.h src/i830_driver.c src/i830_memory.c src/i830_video.c
2010-03-01Rename the screen private from I830Ptr pI830 to intel_screen_private *intel.Owain G. Ainsworth
This is the beginning of the campaign to remove some of the absurd use of Hungarian in the driver. Not that I don't like Hungarian, but I don't need to know that pI830 is a pPointer. (cherry picked from commit cc5d3ba3c331c3b1becf2d19277b24144bf34cfa) Conflicts: src/i830.h src/i830_batchbuffer.c src/i830_batchbuffer.h src/i830_dri.c src/i830_driver.c src/i830_hwmc.c src/i830_memory.c src/i830_uxa.c src/i830_video.c src/i915_hwmc.c src/i965_hwmc.c
2010-03-01Remove the reg_dumper code, now that it's been moved to intel_gpu_tools.Owain G. Ainsworth
(cherry picked from commit 6a716a25abc84f1c7f766fd3bfa1c2aac91e6ae7) Conflicts: src/Makefile.am
2010-02-28Move to kernel coding style.Eric Anholt
We've talked about doing this since the start of the project, putting it off until "some convenient time". Just after removing a third of the driver seems like a convenient time, when backporting's probably not happening much anyway. (cherry picked from 8ae0e44e42db645abe6d385f561260d2ae4a1960 commit)
2010-02-28Remove error state dumping code.Eric Anholt
This is replaced by intel_gpu_dump, and would no longer be used once UMS is gone. (cherry picked from commit 33c488e83676d26e69145ea615f75ca52768f400) Signed-off-by: Owain G. Ainsworth <oga@openbsd.org>
2009-07-22Only align DRI2 tiled pixmaps to the DRI2 tiled pixmap alignment requirement.Eric Anholt
This should save significant amounts of memory for glyph and other small pixmap storage. Bug #21387
2009-07-10Remove NoAccel supportKeith Packard
This removes yet another 'debugging' option that hasn't seen real use in a long time, and wasn't supported under KMS in any case. Signed-off-by: Keith Packard <keithp@keithp.com>
2009-04-28Remove a handful of pointless commentsKristian Høgsberg
CVS keywords, comments about how the source was once reformatted, and the ad-hoc changelog comment in in i830_driver.c
2009-04-27Replace I830Sync's irq emit/wait code with bufmgr use.Eric Anholt
This pre-GEM code was all sorts of broken -- see intel_bufmgr_fake.c for the hoops that must be jumped to use that kernel interface successfully. Yet we continued to use it even with KMS/DRI2/UXA, which may account for some hangs.
2009-04-27unifdef I830_USE_UXA.Eric Anholt
We only have on acceleration architecture now, and you can always build it if you're building the driver.
2009-04-27Remove EXA support.Eric Anholt
UXA has completely replaced EXA at this point. UXA is the same rendering core as EXA, but relying on kernel memory management or a fake bufmgr instead of trying to manage memory in the X Server.
2009-04-27Remove XAA support.Eric Anholt
While EXA/UXA aren't completely good replacements (see bugzilla for performance and stability problems), we are pretty sure at this point that it's the right way to go and that having multiple acceleration architectures is getting in the way of producing a stable codebase.
2009-04-27Remove DRI1 support.Eric Anholt
This was blocked on wide distribution of X Server 1.6 (now in the current or next version of major distributions) and solutions for a couple of significant architectural problems (vblank sync and frontbuffer rendering, which we now have code or good plans for). This includes disabling XVMC which is DRI1-only currently.
2009-04-27Don't try to do anything for I830Sync when VT switched.Eric Anholt
Fixes a crash with fake bufmgr and UXA.
2009-04-21Replace a bunch of #ifdef debug flushing/syncing with a single function.Eric Anholt
This removes it from a callsite where it would have just resulted in a fatalerror.
2009-03-06intel: Nuke shared-entity support (zaphod mode).Eric Anholt
It's been broken for years now, and KMS offers a much better chance of getting this working sensibly without making a mess of the 2D driver.
2009-01-20Remove triple-buffering supportOwain G. Ainsworth
It never worked with any upstream linux kernel, and is quite heavily deprecated. A new solution based around DRI2 will probably be forthcoming. Pageflipping itself is next.
2009-01-14Fix ioctl type.Owain G. Ainsworth
I915_EMIT_IRQ is a read/write ioctl, not a write only. Found by OpenBSd's kernel code which checks these things a long more strongly than Linux.
2008-12-03Enable tiling for DRI2 back/depth buffers.Eric Anholt
This results in allocation overhead for small (8x8-128x128 or so) pixmaps with DRI2, but we're interested in looking at tiling them in general in the near future, anyway.
2008-11-17Merge commit 'origin/master' into dri2Kristian Høgsberg
Conflicts: src/i830_dri.c src/i830_driver.c src/i830_memory.c
2008-10-19Reduce incidence of MI_FLUSH usage.Keith Packard
This tracks whether the last command in each batch is an MI_FLUSH command and avoids appending another MI_FLUSH in the non-GEM cases. Signed-off-by: Keith Packard <keithp@keithp.com>
2008-10-17Handle differently tiled front/back/depth/third in DRI window managementKeith Packard
When moving or clearing the extra buffer contents associated with DRI windows, the XAA code needs to see which buffer is being manipulated in the Setup functions to program the tiling values correctly. Calling I830SelectBuffer and not then calling I830Setup... would result in mis-tiled rendering. Signed-off-by: Keith Packard <keithp@keithp.com> Signed-off-by: Eric Anholt <eric@anholt.net>
2008-10-14Update to DRI2 changes.dri2Kristian Høgsberg
Implement DRI2CopyRegion and provide drm device filename to DRI2 module.
2008-10-14Merge commit 'origin/master' into HEADKristian Høgsberg
2008-10-06Fix driver build against server 1.4.2.Eric Anholt
This disables UXA and DRM modesetting pre-1.5, due to privates handling issues.
2008-09-04DRI2: Move pixmap pitch alignment for use with depth to pixmap create.Eric Anholt
The previous location for pitch fixup would have only worked when depth was used with the backbuffer, and no page flipping or other adventures occurred.
2008-08-29Add DRI2 support.Kristian Høgsberg
2008-08-12Don't wait for ring if kernel mode setting is activeJesse Barnes
We won't have the ring mapped.
2008-08-05Use dri_bo for all object allocations, including pixmaps under uxaKeith Packard
2008-08-05Make EXA functions work for UXA as wellKeith Packard
EXA and UXA have the same acceleration interface, but UXA doesn't provide pixmap stride information as it doesn't manage pixmaps. Move all of that into the driver structure so that the acceleration functions needn't reference the EXA structure.
2008-08-05Add UXA - the unified memory acceleration architecture.Keith Packard
This eliminates the cost of EXA migration management while providing full pixmap allocation control to the driver. The goal is to make something useful for UMA drivers.
2008-06-10[gem] Don't set up the ring in GEM mode, as that'll be handled by the kernel.Eric Anholt
2008-06-10Use batchbuffers instead of ring emits for general commands.Eric Anholt
The batchbuffers are managed using libdrm and bufmgr_fake, and dispatched from the ring from userland.
2008-06-05Replace a couple of wait-for-ring-idles with a single function to do so.Eric Anholt
2008-04-17Make the binding table and surface state be arrays to reduce syncing.Eric Anholt