<p dir="ltr"><br>
On 4 Dec 2015 03:01, "Aaron Watry" <<a href="mailto:awatry@gmail.com">awatry@gmail.com</a>> wrote:<br>
><br>
> Hi Dave (and others),<br>
><br>
> 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.</p>
<p dir="ltr">Just grab r600g-tess-staging</p>
<p dir="ltr">-submit only worked on cayman, but i d posted it here so didn't want to change it during review.</p>
<p dir="ltr">Dave.<br>
><br>
> 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>
>   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>
> 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>
> 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>
> 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>
> --Aaron<br>
><br>
><br>
> On Mon, Nov 30, 2015 at 12:20 AM, Dave Airlie <<a href="mailto:airlied@gmail.com">airlied@gmail.com</a>> wrote:<br>
>><br>
>> 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">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">http://lists.freedesktop.org/mailman/listinfo/mesa-dev</a><br>
><br>
><br>
</p>