<div dir="ltr"><div><div><div><div><div><div><div>Hi Dave (and others),<br><br></div>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.<br><br></div>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).<br></div>  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.<br><br></div>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?).<br><br></div>I naively changed the code to the following, and now Heaven actually runs with tessellation enabled (and it looks like it's working).<br><br>    /* gather required shader gprs */<br>    for (i = 0; i < EG_NUM_HW_STAGES; i++) {<br>        if (!rctx->hw_shader_stages[i].shader) {<br>            num_gprs[i] = def_gprs[i];<br>            continue;<br>        }<br>        num_gprs[i] = rctx->hw_shader_stages[i].shader->shader.bc.ngpr;<br>    }<br><br></div>Just figured that I'd let you know...<br><br>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.<br><br></div>--Aaron<br><div><div><br></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Nov 30, 2015 at 12:20 AM, Dave Airlie <span dir="ltr"><<a href="mailto:airlied@gmail.com" target="_blank">airlied@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
Patchbomb time, this set of patches is a first pass at add adding<br>
ARB_tessellation_shader support to the r600g driver. Only Evergreen<br>
and newer GPUs support tessellation. On any of the GPUs that support<br>
native FP64, this will enable OpenGL 4.1 on them.<br>
<br>
The first bunch of patches are a bit of a driver rework to get<br>
things in better shape for tessellation, they shouldn't cause<br>
any regressions.<br>
<br>
This runs heaven on cayman and should pass all the piglits<br>
unless I've done something wrong.<br>
<br>
Development hit two HW programming fun times, one with tess and<br>
dynamic GPR interaction requiring disabling dynamic GPRs, and<br>
one with programming of some SIMD registers to block TESS shaders<br>
on one unit. These fixed most of the hangs we saw during development.<br>
<br>
This doesn't contain SB support yet, Glenn has started working on it.<br>
<br>
Currently tested hw:<br>
working: CAYMAN, REDWOOD, BARTS, TURKS<br>
hangs on any tessellation: CAYMAN<br>
hangs differently at least with heaven: SUMO<br>
<br>
This patchset doesn't block it on any GPUs, but when merged it<br>
probably should.<br>
<br>
Also available at:<br>
<a href="http://cgit.freedesktop.org/~airlied/mesa/log/?h=r600g-tess-submit" rel="noreferrer" target="_blank">http://cgit.freedesktop.org/~airlied/mesa/log/?h=r600g-tess-submit</a><br>
<br>
Thanks to Glenn Kennard for lots of discussion and testing.<br>
<br>
Dave.<br>
<br>
_______________________________________________<br>
mesa-dev mailing list<br>
<a href="mailto:mesa-dev@lists.freedesktop.org">mesa-dev@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/mesa-dev" rel="noreferrer" target="_blank">http://lists.freedesktop.org/mailman/listinfo/mesa-dev</a><br>
</blockquote></div><br></div>