summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2010-06-07Properly align framebuffer height for tiling.2.10Eric Anholt
This is a simple patch to avoid cherry-picking all of b5c9de10ba3a811f312e622b97ee5e601bd3b74f.
2009-12-10Fix compiler warning in i830_copy_video_data() if XvMC is disabledTobias Doerffel
The variable "intel" is unused when building i830_video.c without XvMC support which results in a compiler warning: i830_video.c: In function 'i830_copy_video_data': i830_video.c:1443: warning: unused variable `intel' Trivial fix via #ifdef.
2009-12-10Xv: enable drmmode overlayDaniel Vetter
Now that libdrm 2.4.16 is released (and already required) we can unconditionally enable this. Please add something like this to the release-notes/NEWS file: * Overlay support for kernel modesetting. This needs at least kernel v2.6.33 to work. A backport to 2.6.32 is available at: http://gitorious.org/daniel-s-linux-stuff/linux-kernel/commits/intel-kms-overlay-for-2.6.32 Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2009-12-10Revert "uxa-glyphs: Enable TILING_X on glyph caches."Chris Wilson
This reverts commit 3f11bbec420080151406c203af292e55177e77d1. For unknown reasons, enabling tiling for the glyph cache is causing glyph corruption both across suspend and resume and VT switching, on a wide range of chipsets (reports include both i8xx and gm45) This strongly suggests that we are handling tiling, or updates to tiled buffers, incorrectly across i915_gem_idle(). However, until we can find the root cause, we want to fix this regression before the next stable release, so simply revert this patch. :( Fixes: [Bug 25406] fonts garbled after resuming from suspend since 6729b508 http://bugs.freedesktop.org/show_bug.cgi?id=25406 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-12-08i965: Only use the affine kernels if both src and mask are affineChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-12-08i965: Set src_filter before testing.Chris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-12-08Assert that we only call OUT_BATCH() inside a BATCHChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-12-08i965: Maximum number of vertices per composite is 24, not 18Chris Wilson
Beware the potential buffer overflow. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-12-07batch: 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>
2009-12-04intel: And remember to flush the batch...Chris Wilson
In commit 98e11210 Remove flush parameter from intel_batch_flush() Maxi spotted that I had broken screen updating. It appears in my haste to eliminate the extra parameter I removed a call to intel_batch_flush() when throttling, i.e. when pushing the updates to the screen before idling. Should fix: Bug 25409 [bisected] rendering corruption since a938673e https://bugs.freedesktop.org/show_bug.cgi?id=25409 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-12-02batch: Downgrade batch submission from a FatalError.Chris Wilson
If we wedge the GPU then we will return -EIO for the current batch and then attempt to reset the GPU. Meanwhile the X server detects the error, throws a FatalError and to all intents and purposes appears to crash to the user - whereas before it often just appeared to momentarily freeze. Of course, on older hardware the server remains frozen until we can find a way to reset those GPUs at runtime. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-12-02Remove 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>
2009-12-02Rename I830Sync() to intel_sync()Chris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-12-02batch: 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>
2009-12-02uxa_prepare_access() don't force a flush.Chris Wilson
Only the kernel knows whether the mapping requires a flush, so do not preempt it. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-12-02Review 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>
2009-12-02i830: Simplify prepare_access / finish_accessChris Wilson
Reduce the 3 conditions into the 2 distinct cases. This has the secondary benefit of also distinguishing between the reported errors. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-12-01uxa: Don't treat prepare_access as a flush synchronisation point.Chris Wilson
The kernel will only emit a flush iff the buffer is currently owned by the GPU. Instead of presuming that the kernel must emit a flush, it is safer to assume that it does not and so cannot mapping the buffer on to the CPU as a synchronisation point. The most obvious counter-example is when we map the same buffer twice without using it in a batch. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-11-30Add i830_bios.h and i830_display.h to EXTRA_DIST.2.9.99.901Carl Worth
These files have been dropped from the generated tar file since the removal of UMS support. However, the bios_reader code still includes these, so "make distcheck" fails unless these are distributed. There's probably a cleaner fix possible, but this at least fixes the build so that the snapshot can be pushed out.
2009-11-30uxa: Limit maximum size of tiled objectsChris Wilson
On older chipsets (i.e. pre-i965) tiling is very restrictive and imposes severe size and alignment constraints. Combine that with relatively small apertures and it is very easy to create a batch buffer that cannot be mapped into the aperture (but would otherwise fit based purely on total object size). To prevent this we need to not use tiling for large buffers (the very same buffers where tiling would be of most benefit!). Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-11-30video-intel: remove i2c_vid.h from src/Makefile.amGaetan Nadon
make dist failed due to missing i2c_vid.h Commit b9b159c49854d8d9d2207946bb583537bb0d48d6 Remove UMS support. The above commit did not remove this header file from the makefile. Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
2009-11-30uxa: Initialise lists for private pixmap structure.Chris Wilson
When updating a buffer object for the framebuffer, we may need to allocate a fresh pixmap private structure, for example if the pixmap is replaced due to resize. When doing so it is then imperative to initialise the circularly linked lists correctly. Should fix the fault: #0 i830_set_pixmap_bo (pixmap=0x24ab380, bo=0x24ab780) at i830_uxa.c:524 #1 0x00007f8615c629fd in drmmode_xf86crtc_resize (scrn=0x247a320, width=1280, height=800) at drmmode_display.c:1345 #2 0x000000000051246c in xf86RandR12ScreenSetSize (pScreen=0x24824f0, width=<value optimized out>, height=<value optimized out>, mmWidth=<value optimized out>, mmHeight=<value optimized out>) at xf86RandR12.c:709 #3 0x0000000000512aa8 in xf86RandR12CreateScreenResources (pScreen=<value optimized out>) at xf86RandR12.c:839 #4 0x0000000000514ec0 in xf86CrtcCreateScreenResources (screen=0x24824f0) at xf86Crtc.c:727 #5 0x0000000000424fb3 in main (argc=<value optimized out>, argv=<value optimized out>, envp=<value optimized out>) at main.c:215 as reported by 'buscher'. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-11-30uxa: Remove cache flush for copyChris Wilson
As the copy uses the 2D blitter, it uses the render cache so the source should not require flushing if it has previously been used as a destination. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-11-30Use new drmGetDeviceNameFromFd() for mapping to drm device nameKristian Høgsberg
Should have been in libdrm to begin with.
2009-11-30i915: Disable centre-point sampling.Chris Wilson
I still have no idea how this is triggering failures, but it is. So revert until the problem is solved. Should fix once again: Bug 23803 [bisected i915] gnome characters disappear http://bugs.freedesktop.org/show_bug.cgi?id=23803 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-11-30i915: WhitespaceChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-11-30debug: Enable dumping of batchbuffer [compile-time only]Chris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-11-30i915: Remove routing of alpha channel to green.Chris Wilson
This modification is redundant since the routing is done in the blend unit anyway. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-11-30i915: Fix missing texture offset for mask.Chris Wilson
In commit e581ceb, I modified the shader generation to accommodate mixed textures and solids but missed applying the new computed sampler for the mask. References: Bug 23803 [bisected i915] gnome characters disappear http://bugs.freedesktop.org/show_bug.cgi?id=23803 Bug 25031 rendering and color corruption since 14109abf http://bugs.freedesktop.org/show_bug.cgi?id=25031 Bug 25047 [945GM bisected] rendercheck/repeat/triangles regressed http://bugs.freedesktop.org/show_bug.cgi?id=25047 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-11-30debug: 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>
2009-11-30overlay: Fix build after 646b4a9483Chris Wilson
The compile cleanup was not without fault... Apparently I don't have XVMC enabled anymore and so missed that this variable is actually used. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-11-30uxa-glyphs: Enable TILING_X on glyph caches.Chris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-11-30uxa: PutImage accelerationChris Wilson
Avoid waiting on dirty buffer object by streaming the upload to a fresh, non-GPU hot buffer and blitting to the destination. This should help to redress the regression reported in bug 18075: [UXA] XPutImage performance regression https://bugs.freedesktop.org/show_bug.cgi?id=18075 Using the particular synthetic benchmark in question on a g45: Before: 9542.910448 Ops/s; put composition (!); 15x15 5623.271889 Ops/s; put composition (!); 75x75 1685.520362 Ops/s; put composition (!); 250x250 After: 40173.865300 Ops/s; put composition (!); 15x15 28670.280612 Ops/s; put composition (!); 75x75 4794.368601 Ops/s; put composition (!); 250x250 which while not stellar performance is at least an improvement. As anticipated this has little impact on the non-fallback RENDER paths, for instance the current cairo-xlib backend is unaffected by this change. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-11-29Only flush batch during prepare access if it may modify the pixmap.Chris Wilson
As we track when a pixmap is active inside a batch buffer, we can avoid unnecessary flushes of the batch when mapping a pixmap back to the CPU. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-11-29batch: Emit a 'pipelined' flush when using a dirty source.Chris Wilson
Ensure that the render caches and texture caches are appropriately flushed when switching a pixmap from a target to a source. This should fix bug 24315, [855GM] Rendering corruption in text (usually) https://bugs.freedesktop.org/show_bug.cgi?id=24315 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-11-29batch: 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>
2009-11-29Cleanup a few compiler warnings.Chris Wilson
Simple warnings for unused variables and C99-style declarations. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-11-20Makefile.am: Add missing .g4i to be included in the tar file.Daniel Kahn Gillmor
Apparently Debian packages were having to manually add these files back in. Distribute them in the first place like we meant to.
2009-11-14.gitignore: use common defaults with custom section # 24239Gaetan Nadon
Using common defaults will reduce errors and maintenance. Only the very small or inexistent custom section need periodic maintenance when the structure of the component changes. Do not edit defaults.
2009-11-14.gitignore: use common defaults with custom section # 24239Gaetan Nadon
Using common defaults will reduce errors and maintenance. Only the very small or inexistent custom section need periodic maintenance when the structure of the component changes. Do not edit defaults.
2009-11-13i915: Derive the correct target color from the pixmap by checking its formatChris Wilson
Particularly noting to route alpha to the green channel when blending with a8 destinations. Fixes: rendercheck/repeat/triangles regressed http://bugs.freedesktop.org/show_bug.cgi?id=25047 introduced with commit 14109a. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-11-10i915: Fix texture sampling coordinates.Chris Wilson
RENDER specifies that texels should sampled from the pixel centre. This corrects a number of failures in the cairo test suite and a few off-by-one bug reports. Grey border around images https://bugs.freedesktop.org/show_bug.cgi?id=21523 Note that the earlier attempt to fix this was subverted by the buggy use of 1x1R textures for solid sources -- which caused the majority of text to disappear. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-11-10i915: Use the color channels to pass along solid sources and masks.Chris Wilson
Instead of allocating and utilising the texture samplers for 1x1R solid sources and masks we can simply use the default diffuse and specular colour channels and adjust the fragment shader appropriately. The big advantage is the reduction in size of batches which should give a good boost to glyph performance, irrespective of the additional boost from using simpler shaders. However, the motivating factor behind the switch is that our use of 1x1 textures turns out to be buggy... Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-11-10i915: Check for overflow before overflowing.Chris Wilson
As the immediate victim of the overflow would be to overwrite the maximum permissible value, the test was optimistic. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-11-10Check that batch buffers are atomic.Chris Wilson
Since batch buffers are rarely emitted by themselves but as part of a sequence of state and vertices, the whole sequence is emitted atomically. Here we just enforce that batches are marked as being part of an atomic sequence as appropriate. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-11-05Revert "configure: make --disable-dri work even if the server supports DRI"Eric Anholt
This reverts commit a851139c2141f6da370186148f2836e18b2acf83. It broke the build, and I don't see why we should be supporting this anyway. Conflicts: configure.ac src/Makefile.am
2009-11-05Fix "Remove flow-control macros for fallbacks in the 2D driver."Eric Anholt
I guess this is the sort of failure due to rebase-happiness that makes Linus yell at us for rebasing.
2009-11-05Kill some more #defines only needed for User-ModesettingDaniel Vetter
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Eric Anholt <eric@anholt.net>
2009-11-05Remove flow-control macros for fallbacks in the 2D driver.Eric Anholt
It's poor style, and has confused new developers.
2009-11-05Increase stride limit for IGDNGJesse Barnes
It can go up to 32k. Upping this lets me use my 2560x1600 and 1920x1200 monitors in an extended desktop configuration. Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>