Am 03.12.2015 19:57, schrieb Dave Airlie:
On 4 Dec 2015 03:01, "Aaron Watry" <awa...@gmail.com> wrote:

Hi Dave (and others),

I cloned your fdo r600g-tess-submit branch and gave it a spin on
CEDAR (Radeon 5400, kernel 4.3.0) with Heaven, and ran into a few
issues.

Just grab r600g-tess-staging

-submit only worked on cayman, but i d posted it here so didn't want
to change it during review.

Dave.

Hello to all,

r600g-tess-staging WORKS
on Turks XT (6670) with poor 2 GB, RAM width 128bits DDR, but slow.
Time for R9 290 or Tonga (R9 380X).

Only issue so far:
Switching tessellation (with mouse) and/or wireframe (F2) in Heaven-4.0
let system hang. But NOT hard.
SysRq Key + S | U | B works
But haven't had time to hunt for a useful log.

GREAT WORK!

Dieter

1) Initially, I got an assertion in r600_add_atom stating that the
atom ID was not less than the R600_NUM_ATOMS value (id = 51,
R600_NUM_ATOMS=51).
  I bumped R600_NUM_ATOMS to 52 for now, and that got rid of that
issue... although I have no idea if that was a correct fix.

2) Next, I kept getting a segfault in evergreen_adjust_gprs at line
3931. Turns out that rctx->hw_shader_stages[2].shader was null
(missing/miscompiled GS?).

I naively changed the code to the following, and now Heaven actually
runs with tessellation enabled (and it looks like it's working).

    /* gather required shader gprs */
    for (i = 0; i < EG_NUM_HW_STAGES; i++) {
        if (!rctx->hw_shader_stages[i].shader) {
            num_gprs[i] = def_gprs[i];
            continue;
        }
        num_gprs[i] =
rctx->hw_shader_stages[i].shader->shader.bc.ngpr;
    }

Just figured that I'd let you know...

If you don't have CEDAR hardware to test with, feel free to ping me
to test any additional changes.  Note that I didn't run the benchmark
to completion (too slow, had to get other work done), but it didn't
hang my GPU in the time that I did have it running.

--Aaron


On Mon, Nov 30, 2015 at 12:20 AM, Dave Airlie <airl...@gmail.com>
wrote:

Hi,

Patchbomb time, this set of patches is a first pass at add adding
ARB_tessellation_shader support to the r600g driver. Only Evergreen
and newer GPUs support tessellation. On any of the GPUs that
support
native FP64, this will enable OpenGL 4.1 on them.

The first bunch of patches are a bit of a driver rework to get
things in better shape for tessellation, they shouldn't cause
any regressions.

This runs heaven on cayman and should pass all the piglits
unless I've done something wrong.

Development hit two HW programming fun times, one with tess and
dynamic GPR interaction requiring disabling dynamic GPRs, and
one with programming of some SIMD registers to block TESS shaders
on one unit. These fixed most of the hangs we saw during
development.

This doesn't contain SB support yet, Glenn has started working on
it.

Currently tested hw:
working: CAYMAN, REDWOOD, BARTS, TURKS
hangs on any tessellation: CAYMAN
hangs differently at least with heaven: SUMO

This patchset doesn't block it on any GPUs, but when merged it
probably should.

Also available at:
http://cgit.freedesktop.org/~airlied/mesa/log/?h=r600g-tess-submit

Thanks to Glenn Kennard for lots of discussion and testing.

Dave.

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev



_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to