[Mesa-dev] [pull] freedreno backports for 10.3
Rob Clark
robdclark at gmail.com
Thu Oct 23 11:28:13 PDT 2014
Emil,
Here are freedreno patches from master backported to 10.3.. plus one
patch outside of freedreno ('util/u_format: add _is_alpha()')
If too much for tomorrows release, pulling in to 10.3 branch right
after the release for the next one would be nice.
According to piglit 395 fixes, 5 regressions. The five regressions are
spec/glsl-1.10/execution/interpolation/interpolation-none-gl_Back*
which were only accidentally passing before. The root issue with
those is that we currently have no good way to tie FRAG shader inputs
that don't have any corresponding VERT shader output to 0,0,0,0.. so
instead they get linked to some random VERT shader output ;-)
I am still seeing some regression compared to master (some
tex-miplevel-selection tests which pass on master, but fail or
intermittent fail on 10.3 backport), but they were simply crashing
before the backport. So freedreno is at least in much better shape
with the backport, compared to prior. Plus, now 0ad is playable[1]
:-)
[1] http://people.freedesktop.org/~robclark/results/0ad-water2.png
BR,
-R
-----
The following changes since commit 724f71ef3905289eee7b45955243fdc7dc5f1251:
r600g: Drop references to destroyed blend state (2014-10-22 15:39:49 +0100)
are available in the git repository at:
https://github.com/freedreno/mesa.git freedreno-10.3
for you to fetch changes up to 749b50a699c88bd476130d1bb2974fef499dfde9:
freedreno/a3xx: fix depth/stencil restore format (2014-10-23 08:27:24 -0400)
----------------------------------------------------------------
Ilia Mirkin (27):
freedreno/ir3: fix FSLT/etc handling to return 0/-1 instead of 0/1.0
freedreno/ir3: INEG operates on src0, not src1
freedreno/ir3: add UARL support
freedreno/ir3: negate result of USLT/etc
freedreno/ir3: use unsigned comparison for UIF
freedreno/ir3: add TXL support
freedreno/ir3: fix UCMP handling
freedreno/ir3: implement UMUL correctly
freedreno: add default .dir-locals.el for emacs settings
freedreno/ir3: make texture instruction construction more dynamic
freedreno/ir3: fix TXB/TXL to actually pull the bias/lod argument
freedreno/ir3: add TXQ support
freedreno/ir3: add TXB2 support
freedreno: dual-source render targets are not supported
freedreno: instanced drawing/compute not yet supported
freedreno/ir3: avoid fan-in sources referring to same instruction
freedreno/ir3: add IDIV/UDIV support
freedreno/ir3: add UMOD support, based on UDIV
freedreno/ir3: add MOD support
freedreno/ir3: add ISSG support
freedreno/ir3: add UMAD support
freedreno/ir3: make TXQ return integers, not floats
freedreno/ir3: shadow comes before array
freedreno/ir3: add texture offset support
freedreno/ir3: add TXD support and expose ARB_shader_texture_lod
freedreno/ir3: add TXF support
freedreno: positions come out as integers, not half-integers
Rob Clark (62):
freedreno/ir3: detect scheduler fail
freedreno/ir3: add TXB
freedreno/ir3: add DDX/DDY
freedreno/ir3: bit of debug
freedreno/ir3: fix error in bail logic
freedreno/ir3: fix constlen with relative addressing
freedreno/ir3: add no-copy-propagate fallback step
freedreno: don't overflow cmdstream buffer so much
freedreno/ir3: fix potential segfault in RA
freedreno: update generated headers
freedreno/a3xx: enable hw primitive-restart
freedreno/a3xx: handle rendering to layer != 0
freedreno: update generated headers
freedreno/a3xx: format fixes
util/u_format: add _is_alpha()
freedreno/a3xx: alpha render-target shenanigans
freedreno/ir3: catch incorrect usage of tmp-dst
freedreno/ir3: add missing put_dst
freedreno: "fix" problems with excessive flushes
freedreno: update generated headers
freedreno/a3xx: 3d/array textures
freedreno: add DRM_CONF_SHARE_FD
freedreno/a3xx: more texture array fixes
freedreno/a3xx: initial texture border-color
freedreno: fix compiler warning
freedreno: don't advertise mirror-clamp support
freedreno: update generated headers
freedreno: we have more than 0 viewports!
freedreno: turn missing caps into compile warnings
freedreno/a3xx: add LOD_BIAS
freedreno/a3xx: add flat interpolation mode
freedreno/a3xx: add 32bit integer vtx formats
freedreno/a3xx: fix border color order
freedreno: move bind_sampler_states to per-generation
freedreno: add texcoord clamp support to lowering
freedreno/a3xx: add support to emulate GL_CLAMP
freedreno/a3xx: re-emit shaders on variant change
freedreno/lowering: fix token calculation for lowering
freedreno: destroy transfer pool after blitter
freedreno: max-texture-lod-bias should be 15.0f
freedreno: update generated headers
freedreno/a3xx: handle large shader program sizes
freedreno/a3xx: emit all immediates in one shot
freedreno/ir3: fix lockups with lame FRAG shaders
freedreno/a3xx: handle VS only outputting BCOLOR
freedreno: query fixes
freedreno/a3xx: refactor vertex state emit
freedreno/a3xx: refactor/optimize emit
freedreno/ir3: optimize shader key comparision
freedreno: inline fd_draw_emit()
freedreno: fix layer_stride
freedreno: update generated headers
freedreno/ir3: large const support
freedreno/a3xx: more layer/level fixes
freedreno/ir3: comment + better fxn name
freedreno/ir3: fix potential gpu lockup with kill
freedreno/a3xx: disable early-z when we have kill's
freedreno/ir3: add debug flag to disable cp
freedreno: clear vs scissor
freedreno: mark scissor state dirty when enable bit changes
freedreno/a3xx: fix viewport state during clear
freedreno/a3xx: fix depth/stencil restore format
.../auxiliary/target-helpers/inline_drm_helper.h | 2 +-
src/gallium/auxiliary/util/u_format.c | 17 +
src/gallium/auxiliary/util/u_format.h | 2 +
src/gallium/drivers/freedreno/.dir-locals.el | 8 +
src/gallium/drivers/freedreno/a2xx/a2xx.xml.h | 18 +-
src/gallium/drivers/freedreno/a2xx/fd2_draw.c | 13 +-
src/gallium/drivers/freedreno/a2xx/fd2_gmem.c | 4 +-
src/gallium/drivers/freedreno/a2xx/fd2_program.c | 4 +-
src/gallium/drivers/freedreno/a2xx/fd2_texture.c | 20 +
src/gallium/drivers/freedreno/a3xx/a3xx.xml.h | 170 +++-
src/gallium/drivers/freedreno/a3xx/fd3_context.c | 34 +
src/gallium/drivers/freedreno/a3xx/fd3_context.h | 54 ++
src/gallium/drivers/freedreno/a3xx/fd3_draw.c | 164 ++--
src/gallium/drivers/freedreno/a3xx/fd3_emit.c | 142 ++-
src/gallium/drivers/freedreno/a3xx/fd3_emit.h | 48 +-
src/gallium/drivers/freedreno/a3xx/fd3_gmem.c | 71 +-
src/gallium/drivers/freedreno/a3xx/fd3_program.c | 154 +++-
src/gallium/drivers/freedreno/a3xx/fd3_program.h | 5 +-
src/gallium/drivers/freedreno/a3xx/fd3_query.c | 4 +-
src/gallium/drivers/freedreno/a3xx/fd3_texture.c | 110 ++-
src/gallium/drivers/freedreno/a3xx/fd3_texture.h | 1 +
src/gallium/drivers/freedreno/a3xx/fd3_util.c | 66 +-
src/gallium/drivers/freedreno/adreno_common.xml.h | 9 +-
src/gallium/drivers/freedreno/adreno_pm4.xml.h | 12 +-
src/gallium/drivers/freedreno/freedreno_context.c | 8 +-
src/gallium/drivers/freedreno/freedreno_context.h | 34 +-
src/gallium/drivers/freedreno/freedreno_draw.c | 88 +-
src/gallium/drivers/freedreno/freedreno_draw.h | 51 +-
src/gallium/drivers/freedreno/freedreno_gmem.c | 71 +-
src/gallium/drivers/freedreno/freedreno_gmem.h | 7 +-
src/gallium/drivers/freedreno/freedreno_lowering.c | 221 ++++-
src/gallium/drivers/freedreno/freedreno_lowering.h | 10 +
src/gallium/drivers/freedreno/freedreno_program.c | 4 +-
src/gallium/drivers/freedreno/freedreno_query_hw.c | 11 +-
src/gallium/drivers/freedreno/freedreno_resource.c | 49 +-
src/gallium/drivers/freedreno/freedreno_screen.c | 72 +-
src/gallium/drivers/freedreno/freedreno_state.c | 14 +-
src/gallium/drivers/freedreno/freedreno_texture.c | 38 +-
src/gallium/drivers/freedreno/freedreno_texture.h | 4 +
src/gallium/drivers/freedreno/freedreno_util.h | 30 +-
src/gallium/drivers/freedreno/ir3/ir3.c | 13 +-
src/gallium/drivers/freedreno/ir3/ir3.h | 26 +-
src/gallium/drivers/freedreno/ir3/ir3_compiler.c | 990 +++++++++++++++++----
src/gallium/drivers/freedreno/ir3/ir3_compiler.h | 2 +-
.../drivers/freedreno/ir3/ir3_compiler_old.c | 16 +-
src/gallium/drivers/freedreno/ir3/ir3_cp.c | 12 +-
src/gallium/drivers/freedreno/ir3/ir3_depth.c | 16 +-
src/gallium/drivers/freedreno/ir3/ir3_ra.c | 19 +-
src/gallium/drivers/freedreno/ir3/ir3_sched.c | 57 +-
src/gallium/drivers/freedreno/ir3/ir3_shader.c | 56 +-
src/gallium/drivers/freedreno/ir3/ir3_shader.h | 70 +-
src/gallium/targets/pipe-loader/pipe_msm.c | 25 +-
52 files changed, 2483 insertions(+), 663 deletions(-)
create mode 100644 src/gallium/drivers/freedreno/.dir-locals.el
More information about the mesa-dev
mailing list