summaryrefslogtreecommitdiff
path: root/src/i830_batchbuffer.c
AgeCommit message (Collapse)Author
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-03-06Fix another VT switch leakLukáš Hejtmánek
The batch_bo buffer object is reallocated on enter VT, so we need to unref it on leave vt. Signed-off-by: Lukas Hejtmanek <xhejtman@ics.muni.cz>
2009-01-17intel: fix DRI2 should be DRI_DRI2Dave Airlie
2009-01-15Fix invarient state emits for DRI2 (do it per batch, since there's no lock).Eric Anholt
2009-01-06FatalError on batchbuffer map failureKeith Packard
Yes, it would be nice to do something other than crash here. Signed-off-by: Keith Packard <keithp@keithp.com>
2008-12-08i965: Add batch_flush_notify hook to create new vertex-buffer boCarl Worth
This avoids mapping a buffer object which is being referenced by a batch that has already been flushed, (which is a terribly expensive operation). On my machine this brings the performance of x11perf -aa10text from 85k back to 150k, (where it was before a recent kernel upgrade). Also, before this patch, when I used my X server actively performance would drop as low as 15k---hopefully that bug is gone with this change.
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-14Merge commit 'origin/master' into HEADKristian Høgsberg
2008-10-09For non-DRM, add NOOPs after BATCH_BUFFER_START to verify completionKeith Packard
In non-DRM mode, the driver waits for the hardware by checking the ring pointers; when the ring is empty, it assumes the hardware is idle. However, the hardware updates the ring pointers before executing a command, so if the MI_BATCH_BUFFER_START is the last command in the ring, the driver will think the hardware is idle while it may still be processing the contents of the batch buffer. Placing NOOPs after the BATCH_BUFFER_START allows the driver to know that the hardware has completed the batch buffer. Signed-off-by: Keith Packard <keithp@keithp.com>
2008-10-09i830 nondrm batch buffer insertion was missing ADVANCE_LP_RING() callKeith Packard
The ring commands to insert a batch buffer to the ring in i830 form were not terminated by a call to ADVANCE_LP_RING(). This surely would have caused chaos. Signed-off-by: Keith Packard <keithp@keithp.com>
2008-09-12Fix mis-merge of DRI2 changes related to pI830->directRenderingTypeKeith Packard
The old code had a directRendering boolean, the new one has an enum. A bunch of the merges failed to remove the '!' in front of the old name, breaking a bunch of 'we don't have DRI' tests.
2008-09-11Fix build failures that should have been in the previous merge commit.Eric Anholt
2008-09-09Track move of exec to bufmgr, and restoration of emit/wait funcs for non-drm.Eric Anholt
2008-08-29Fix build when using kernel DRM headersJesse Barnes
Unfortunate mismatch between kernel and DRM master headers. Kernel: typedef struct _drm_i915_batchbuffer { ... } drm_i915_batchbuffer_t; DRM master: typedef struct drm_i915_batchbuffer { ... } drm_i915_batchbuffer_t; so use the typedef rather than the morphing structure name.
2008-06-13[gem] Catch -EINTR from blocking GEM ioctl and restart.Eric Anholt
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 bufmgr_gem when available instead of the fake bufmgr.Eric Anholt
This is a bit unstable still sometimes.
2008-06-10Use the DRM for submitting batchbuffers when available.Eric Anholt
There are some concerns with this, as the DRM will be setting the nonsecure flag on the batchbuffer, and the server may be submitting some secure-only commands. It appears to work on the 915GM test system currently.
2008-06-10Avoid needless flush emits in the blockhandler.Eric Anholt
The EmitFlush in i830_dri.c was added as a pageflipping workaround, and was noted to not even be sufficient then. There's no reason for it to be there, so it's removed. After that, we just have to not emit an MI_FLUSH if we already had, and cursor movement no longer bashes memory manager.
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.