summaryrefslogtreecommitdiff
path: root/src/i830_exa.c
AgeCommit message (Collapse)Author
2009-04-06Fix offset in begin_gtt_access caseJesse Barnes
Don't use bo->virtual in the begin_gtt_access case, use the framebuffer mapping and bo offset instead. Reviewed-by: Eric Anholt <eric@anholt.net> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org> (cherry picked from commit 6cd914ef315036ce8e91c7b6492994353e8ed2d8)
2009-03-31Tiling fixes, third setJesse Barnes
Hopefully this concludes the fixes necessary to deal with the various combinations of kernel and user level tiling. We have several cases to handle: 1) KMS (kernel handles all tiling) 2) UMS w/memory management + kexec fencing (kernel handles all tiling) 3) UMS w/memory mangement but no kexec fencing (userland handles tiling) 4) UMS w/o memory management (userland handles tiling) For cases (1) & (2) we can use GTT mapping, which will give us good performance and take care of allocating fence registers as needed. It's important *not* to have userland set up fence regs in this case, since the kernel will be using all of them. For case (3), we use the begin/end GTT map functions provided by libdrm, in combination with pinning and fence register setup in i830_memory.c to deal with tiled surfaces. This also gives us good performance and correctness. For case (4) we use the old style virtual mapping + offset for dealing with surfaces; note that UXA doesn't seem to work in this configuration regardless of these fixes. Fixes bug #20803. Reviewed-by: Eric Anholt <eric@anholt.net> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org> (cherry picked from commit 8dabcc40747bfd478f296728741240241698f165)
2009-02-27Only allocate pixmaps aligned for tiling when requested by DRI2 GetBuffers.Eric Anholt
This saves massive quantities of memory on pre-965 since the DRI2 tiling enable caused the minimum size of any pixmap to be 1MB.
2009-02-26Fix UXA for server 1.4.Eric Anholt
2009-02-26Regard the screen pixmap as suitable for acceleration.Eric Anholt
With UXA on the fake bufmgr, the screen pixmap doesn't have a BO and so no acceleration was occurring.
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-02-21uxa: Ask for BOs ready for rendering for pixmaps.Eric Anholt
The assumption is that we're almost always accelerating our drawing to new pixmaps (fill, copy, etc.).
2009-02-10uxa: Fix failure to --amend in further changes in previous commit.Eric Anholt
2009-02-10uxa: hook up the fallback debug to the driver's fallback debug option.Eric Anholt
2009-02-02Un-revert the I915_SETPARAM_NUM_USED_FENCES commit reverted by accident.Kristian Høgsberg
Oops, my bad. Reverted 8d4bc36fae50b09a73ba2cfab920adb32141a358 since my kernel doesn't yet have the new param, committed the revert by accident.
2009-02-02Fix last-minute "cleanup" that broke the patch.Kristian Høgsberg
2009-01-27Support tiled back/depth on 915-class hardware with DRI2.Jesse Barnes
Set alignments, tile settings and flags correctly in the 2D driver to support tiled rendering. UXA's create pixmap function currently assumes the worst about the alignment constraints; that should probably be fixed. Some of the 1M alignment fixes could probably be done more cleanly as well.
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.
2009-01-06Fix pin leakage with EXA GTT-mapping shortcut, and crash with UXA on KMS.Eric Anholt
2009-01-06Resize framebuffer on screen size change (requires UXA and DRI2)Keith Packard
Signed-off-by: Keith Packard <keithp@keithp.com>
2008-12-31UXA: Fallback to dri_bo_map() if pin failedZhenyu Wang
This fixes VT switch issue with UXA after Eric's aae4008096399a0e84abc7c016b35092caf9db25 on 2D side.
2008-12-29exa: fix map gtt call to use current APIDave Airlie
2008-12-18uxa: Do a hack to use the aperture mapping instead of bo_map in sw fallbacks.Eric Anholt
Because of how fallbacky the uxa rendering core is, and our inability (without wfb in userland or page faulting in the kernel) to tell the kernel just where we're going to fall back, the clflush overhead can become outrageous, for example with emacs and xcompmgr. Instead of using drm_intel_bo_map, pin the buffer and do the fallback to the aperture mapping. This gets us the bad old performance that fb is designed for, instead of bad new performance.
2008-12-05uxa: Reject solid/copy to under-8bpp destinations.Eric Anholt
EXA wouldn't create pixmaps for under-8bpp, but UXA does. Fixes mis-rendering in xfwm, evolution message compose, firefox link drag'n'drop, and I'm sure more. Big thanks to Pierre Willenbrock for debugging the issue! Bug #18050
2008-12-03Re-enable composite accel on 965 with UXA.Eric Anholt
This was blocked on getting 965 render aware of BO pixmaps, which is happily now the case.
2008-12-02UXA: Add support for tiled front/back/depth by cutting over to the GTT map.Eric Anholt
2008-11-17Merge commit 'origin/master' into dri2Kristian Høgsberg
Conflicts: src/i830_dri.c src/i830_driver.c src/i830_memory.c
2008-11-05Make I830FALLBACK debugging a runtime instead of compile-time option.Eric Anholt
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-15Remove gratuitous flushing in EXA after solid operations.Eric Anholt
This snuck in with the UXA rename commit.
2008-10-14Merge commit 'origin/master' into HEADKristian Høgsberg
2008-10-07Fix driver build against server master.Lukas Hejtmanek
Broken by 3a4151b69daa478ac6edf042d604ee41e8429c0d
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-10Merge branch 'master' into dri2Eric Anholt
Conflicts: src/i830_batchbuffer.c src/i830_display.c
2008-09-03UXA: Re-enable non-965 render.Eric Anholt
2008-08-29Add DRI2 support.Kristian Høgsberg
2008-08-26Change uxa private keys to integer variables.Eamon Walsh
Prepares for a devPrivates system that will store an index.
2008-08-26Remove unused exa_pixmap_key.Eamon Walsh
2008-08-21Hide kernel mode setting EXA code behind XF86DRM_MODEJesse Barnes
Prevents compiler warnings in the non-kms case.
2008-08-19Use GTT mapping for EXA PrepareAccess functionJesse Barnes
Makes software fallbacks *much* faster.
2008-08-13Make EXA & UXA share bo getting functionJesse Barnes
Needed for proper acceleration & batch buffer handling.
2008-08-12Add EXA pixmap management functions for kernel mode settingJesse Barnes
Mostly pulled over from the old kernel modesetting code; a few updates were necessary.
2008-08-08Make it actually build the kernel stuff if possibleJesse Barnes
Fixup the kernel stuff to have a slightly better chance of working. Still need to fixup the EXA pixmap functions.
2008-08-05[uxa] Remove unused pixmap size limits.Keith Packard
All size-related rendering limits should be managed by the driver in the pixmap_is_offscreen call. There's no need for uxa to even know these values.
2008-08-05Rename uxa using _ instead of capsKeith Packard
2008-08-05Change PrepareAccess to take access mode rather than indexKeith Packard
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-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-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-18Add i830_transform_is_affine and i830_get_transformed_coordinates_3d.Keith Packard
These are needed to deal with projective transforms in the composite operation.