path: root/src/gallium/drivers/freedreno/freedreno_draw.c
AgeCommit message (Collapse)AuthorFilesLines
2014-05-20freedreno: fix index buffer offsetRob Clark1-1/+1
Signed-off-by: Rob Clark <>
2014-05-20freedreno: add support for hw queriesRob Clark1-0/+4
Real GPU queries need some infrastructure to track samples per tile and accumulate the results. But fortunately this can be shared across GPU generation. See: Signed-off-by: Rob Clark <>
2014-02-16freedreno: fix problems if no color buf boundRob Clark1-1/+6
Signed-off-by: Rob Clark <>
2014-01-08freedreno: add basic query supportRob Clark1-0/+4
Add for now some simple/basic query support (ie. things not actually requiring the GPU). Might change around a bit when I actually add GPU queries, but for now this enables some useful performance info in the GALLIUM_HUD. For example: GALLIUM_HUD=fps+batches+batches-sysmem+batches-gmem+restores,draw-calls The driver specific specific queries are: + draw-calls + batches - number of batches per second, sum of batches-sysmem plus batches-gmem + batches-gmem - render a set of tiles in GMEM, for each tile (optionally) system mem -> gmem (restore), plus N draws, plus gmem -> system mem (resolve) per second + batches-sysmem - N draws to system memory (GMEM bypass) per second + restores - number of GMEM batches that required restore per second Ideally for GMEM rendering, you want batches-gmem to equal fps. If the app is doing something that triggers multiple passes (ie. requires extra round trip gmem <-> system memory) then the # of batches per second will go up relative to fps. Signed-off-by: Rob Clark <>
2014-01-08freedreno/a3xx: support for hw binning passRob Clark1-3/+6
The binning pass sorts vertices into which bins/tiles they apply to. The visibility information generated during the binning pass can be used to speed up the rendering pass by filtering out vertices which do not apply to the current tile. See: This brings a significant fps boost. A rough assortment of tests (supertuxkart, etracer, tremulous, glmark2 'build' test, etc) seems to yield a ~35-45% fps improvement. For now, to be conservative, the binning pass is not enabled yet by default. To enable it use: FD_MESA_DEBUG=binning So far I haven't found anything that breaks with binning enabled, but I'd like a bit more testing before I enable it as default. Signed-off-by: Rob Clark <>
2013-10-29freedreno: emulated unsupported primitive typesRob Clark1-20/+9
Use u_primconvert to convert unsupported primitives into supported primitive plus index buffer. Signed-off-by: Rob Clark <>
2013-10-29freedreno: update generated headersRob Clark1-1/+1
pull in some fixes to draw-initiator/prim-type. Signed-off-by: Rob Clark <>
2013-09-14freedreno: fd_draw helperRob Clark1-10/+2
Have a single helper that all draws come through.. mainly for a convenient debug and instrumentation point. Signed-off-by: Rob Clark <>
2013-08-29freedreno: updates for msm drm/kms driverRob Clark1-1/+1
There where some small API tweaks in libdrm_freedreno to enable support for msm drm/kms driver. Signed-off-by: Rob Clark <>
2013-08-24freedreno: fix segfault when no color buffer boundRob Clark1-2/+2
Don't crash when no color buffer bound. Something caught when starting to run piglit, fixes a hanful of piglit tests. Signed-off-by: Rob Clark <>
2013-06-08freedreno: better scissor fixRob Clark1-2/+3
Actually respect rasterizer state. Signed-off-by: Rob Clark <>
2013-06-08freedreno: gmem bypassRob Clark1-5/+28
The GPU (at least a3xx, but I think also a2xx) can render directly to memory, bypassing tiling. Although it can't do this if blend, depth, and a few other features of the pipeline are enabled. This direct memory mode can be faster for some sorts of operations, such as simple blits. In particular, this significantly speeds up XA by avoiding to pull the entire dest pixmap into GMEM, render tiles, and write it all back out again. This should also speed up resource copy-region and blit. Signed-off-by: Rob Clark <>
2013-06-08freedreno: prepare for a3xxRob Clark1-0/+212
Split the parts that are specific to adreno a2xx series GPUs from the parts that will be in common with a3xx, so that a3xx support can be added more cleanly. Signed-off-by: Rob Clark <>