summaryrefslogtreecommitdiff
path: root/src/i915_render.c
AgeCommit message (Collapse)Author
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-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-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-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-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-05Remove flow-control macros for fallbacks in the 2D driver.Eric Anholt
It's poor style, and has confused new developers.
2009-10-08Call pPixmaps plain old pixmaps.Eric Anholt
2009-10-08de-pCamelHungarian the Render pictures and pixmaps.Eric Anholt
2009-10-08Share several render fields between render implementations.Eric Anholt
Also, start settling on the cairo naming for things: source, mask, and dest.
2009-10-08Rename the xf86 screen private from pScrn to scrn.Eric Anholt
2009-10-08Rename the screen private from I830Ptr pI830 to intel_screen_private *intel.Eric Anholt
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.
2009-10-06Move 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.
2009-09-21Split i915/i830 composite_emit_primitive into two functions.Keith Packard
The i915 and i830 take similar but different data when emitting the primitives, instead of trying to share code here, just split this apart and avoid potentially breaking things later on. Signed-off-by: Keith Packard <keithp@keithp.com>
2009-09-14Avoid fallbacks for compositing gradient patternsChris Wilson
Currently when asked to composite using a gradient source or mask, we fallback to using fbComposite(). This has the side-effect of causing a readback on the destination surface, stalling the GPU pipeline. Instead, like uxa_trapezoids(), we can use pixman to fill a scratch pixmap and then copy that to an offscreen pixmap for use with uxa_composite(). Speedups on i915: firefox-talos-svg: 710378.14 -> 549262.96: 1.29x speedup No slowdowns. Thanks to Søeren Sandmann Pedersen for spotting the missing ValidatePicture(). Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-09-09i915: Restore nearest samplingChris Wilson
My recent commit [94fc93] to use the pixel centre for sampling with the i830 broke the i915. This restores the previous sampling coordinates for the i915 whilst preserving the correct coordinates for i830. Fixes: gnome characters disappear http://bugs.freedesktop.org/show_bug.cgi?id=23803 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-09-05i830/i915: Set the sample position to the pixel center.Chris Wilson
And in particular we apply the nearest sample bias separately for src/mask. Fixes cairo/test: device-offset-scale finer-grained-fallbacks mask-transformed-{similar,image} meta-surface-pattern pixman-rotate surface-pattern-big-scale-down text-transform Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-07-16Really fix i915 render. Fail at commit --amend.Eric Anholt
2009-07-16Fix 915-class Render after the 8xx-class Render fix.Eric Anholt
The two shared i830_composite.c, so giving i830 atomic batch support triggered anger about starting i830's atomic area while in i915's atomic area. Instead, split the emit-a-primitive stuff from the state emission.
2009-05-10Fix "Unkown" typo in two FatalError messagesAlan Coopersmith
Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
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-02-26Fix up i915 composite and common solid/copy code to use check_aperture.Eric Anholt
This could fix complaints about binding BOs and resulting failure to render.
2009-01-17Fix i915 batch_start_atomic counting.Eric Anholt
2009-01-16Re-emit i915 composite setup when the batchbuffer wraps.Eric Anholt
This also introduces tests to make sure that we asked for enough reserved space and that we don't allow wrapping at the wrong time. This fixes a hang during text rendering with DRI2 and a GL client running, but could potentially affect text rendering with GEM in general with an exceptional batchbuffer setup.
2008-11-05Make I830FALLBACK debugging a runtime instead of compile-time option.Eric Anholt
2008-10-06Add support for RepeatPad and RepeatReflect to 915 and 830-class Render accel.Eric Anholt
2008-08-05Add batch flush in i830_uxa_prepare_accessKeith Packard
2008-08-05Use dri_bo for all object allocations, including pixmaps under uxaKeith Packard
2008-06-10Change most usage of pixmap offsets to using a reloc macro.Eric Anholt
This is based on airlied's RING->BATCH commit. The 965 code still needs to be fixed up for relocations.
2008-05-07Check pitch for EXA operationZhenyu Wang
2D pitch limit applys to all chips. Pre-965 chip has 8KB pitch limit for 3D. 965 supports max pitch by current exa (128KB). (cherry picked from commit 8187a5a16f8bd8f0ba5e7f5357f355928b3b8f07)
2008-03-21Transformed coord computed using floats. Don't move bilinear composite dst.Keith Packard
The homogeneous coordinate computation in the core server cannot be used for many legal matrices as it overflows. Just use floats in the driver; faster and avoids troubles. When compositing with bilinear filter, don't push the dst coordinates around as that makes the output blurry when pixels are aligned.
2008-03-18Handle projective transforms on 9xx for Composite.Keith Packard
Projective transforms require un-normalized texture coordinates and the use of the texldp instruction. The coordinates are passed as x/y/z/w (the z is unused, but there isn't a vertext format for just x/y/w).
2008-03-188xx/9xx can handle textures to 2kx2k. 965 can do 8kx8kKeith Packard
2008-03-18Compile warning fixes.Paulo Cesar Pereira de Andrade
Move some declarations and don't declare an extra variable with the same name, to fix warnings about mixed declarations and code.
2008-03-14Change OUT_RING and similar calls to OUT_BATCH for batchbuffer mergeEric Anholt
2008-03-11Remove i830+ driver's use of CARD*/INT* types for great justice.Eric Anholt
Several uses are actually left, which are determined by the X Server interfaces we're implementing.
2008-03-11Silence warnings about possible uninitialize use of dst_format.Kristian Høgsberg
Whoa, gcc got a lot smarter about warnings. If iXXX_get_dest_format() doesn't support the picture format passed in it won't initialize the uint32_t pointed to by dst_format and return FALSE. What gcc now can detect is if dst_format is used without checking the return value, it might be used uninitialized. This patch makes sure we always check the return value before using dst_format.
2007-08-28Fix i915 a8 color buffer blendingZhenyu Wang
From spec, i915 engine uses green channel when reading from 8bit color buffer for blending, and also writes back green channel. Fix blend factor in dest alpha case by using dest color instead. Now rendercheck can pass a8 tests.
2007-08-16i915: add support for render to a8Dave Airlie
2007-08-10Attempt to fix several front buffer tiling failure cases.Eric Anholt
Front buffer tiling is now disabled with G965 and XAA. Some of the acceleration that i830_xaa.c does can't be supported on tiled buffers. Adds a tiling field to struct i830_memory, and uses it instead of separate variables for each potential tiled buffer.
2007-07-23Fix a typo in i915 renderZhenyu Wang
Fence setting is in mapstate actually. This fixes rotation in tiled fb case, thanks Keith to report this.
2007-07-11Fix i915 rendering for tiled bufferWang Zhenyu
Make it to check fence register for dest buffer.
2007-07-06FBC and tiling changesJesse Barnes
- change framebuffer option name to "FramebufferCompression" - add new "Tiling" option (controls all tiling, not just front buffer) - add debug message to fb compression enable/disable routines - update man page with new options
2007-06-12Fix context switching between DRI and X.Eric Anholt
Now, all 3D pipeline consumers in the driver just call IntelEmitInvariantState(), which handles basic state setup, the caching of that state setup, and notifying DRI clients. This also removes a mistaken idle wait in the Render code which was papering over the brokenness in the context switching.
2007-05-18EXA: add render enter helper functionWang Zhenyu
That notify mesa rendering is smashing the state, and check last 3d operation to do sync after we're swapped in or others.
2007-05-18EXA: remove a flush cmd in i915 render codeWang Zhenyu
2007-01-31Naming and formatting cleanup in Render acceleration code.Eric Anholt