[Mesa-dev] freedreno: 'Unhandled NIR tex src type: 11' on A3XX
Jonathan Marek
jonathan at marek.ca
Tue Jun 11 01:53:25 UTC 2019
On 6/10/19 9:52 PM, Brian Masney wrote:
> Hi Rob,
>
> On Mon, Jun 10, 2019 at 05:10:45PM -0700, Rob Clark wrote:
>> On Mon, Jun 10, 2019 at 3:54 PM Brian Masney <masneyb at onstation.org> wrote:
>>>
>>> On Mon, Jun 10, 2019 at 06:58:30AM -0700, Rob Clark wrote:
>>>> On Mon, Jun 10, 2019 at 6:53 AM Rob Clark <robdclark at gmail.com> wrote:
>>>>>
>>>>> On Sat, Jun 8, 2019 at 6:08 PM Brian Masney <masneyb at onstation.org> wrote:
>>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> I'm trying to get the GPU working using the Freedreno driver (A330) on
>>>>>> the Nexus 5 phone. I'm using kernel 5.2rc3 with some out of tree patches
>>>>>> related to the GPU [1] and mesa 19.1.0-rc5 on postmarketOS. When I run
>>>>>> glxgears, I see the gears show up for a fraction of a second and then
>>>>>> it terminates due to the following error:
>>>>>>
>>>>>> -----
>>>>>> shader: MESA_SHADER_FRAGMENT
>>>>>> inputs: 1
>>>>>> outputs: 1
>>>>>> uniforms: 0
>>>>>> shared: 0
>>>>>> decl_var uniform INTERP_MODE_NONE sampler2D sampler (0, 0, 0)
>>>>>> decl_var shader_in INTERP_MODE_SMOOTH vec4 in_0 (VARYING_SLOT_VAR0, 0, 0)
>>>>>> decl_var shader_out INTERP_MODE_FLAT vec4 out_0 (FRAG_RESULT_DATA0, 0, 0)
>>>>>> decl_function main (0 params)
>>>>>>
>>>>>> impl main {
>>>>>> block block_0:
>>>>>> /* preds: */
>>>>>> vec1 32 ssa_0 = load_const (0x00000000 /* 0.000000 */)
>>>>>> vec2 32 ssa_1 = intrinsic load_barycentric_pixel () (1) /* interp_mode=1 */
>>>>>> vec4 32 ssa_2 = intrinsic load_interpolated_input (ssa_1, ssa_0) (0, 0) /* base=0 */ /* component=0 */ /* in_0 */
>>>>>> vec1 32 ssa_3 = deref_var &sampler (uniform sampler2D)
>>>>>> vec2 32 ssa_4 = vec2 ssa_2.x, ssa_2.y
>>>>>> vec4 32 ssa_5 = tex ssa_3 (texture_deref), ssa_3 (sampler_deref), ssa_4 (coord)
>>>>>> Unhandled NIR tex src type: 11
>>>>>
>>>>> This should be getting lowered somewhere.. and I don't *think* it
>>>>> should be a3xx specific.
>>>>
>>>> It should be getting lowered in gl_nir_lower_samplers().. which should
>>>> be called from mesa/st before the driver even sees this shader.
>>>>
>>>> Could you build mesa from git w/ latest 19.1, I guess this must have
>>>> been fixed by now, since other drivers that use nir would hit the same
>>>> issue.
>>>
>>> This error doesn't happen on X11 using the mesa master branch. Instead,
>>> I get the following error on that branch:
>>>
>>> ../src/gallium/drivers/freedreno/freedreno_batch.c:424:fd_batch_add_dep: Assertion `!batch_depends_on(dep, batch)' failed.
>>>
>>> Full disclosure though: I rebuilt the mesa package using the
>>> postmarketOS packaging yesterday and it includes a few extra patches for
>>> musl libc.
>>>
>>> https://gitlab.com/postmarketOS/pmaports/tree/master/temp/mesa
>>
>>
>> I don't see anything obvious in those patches that would be related..
>> but I suspect this type of error is going to be timing related.
>> (Which could ofc be due to musl or something else)
>>
>> but a bit surprised debug_assert() is enabled in debug builds.. it
>> would probably be a "harmless" situation if asserts were not enabled.
>>
>> (note that I do most of my testing with debug builds with asserts
>> enabled.. this is the type of thing that I want to see and fix.. but
>> probably shouldn't matter to end users)
>
> I recompiled the master branch of mesa in pmOS with '-Db_ndebug=true'
> and X11 is now working properly on the Nexus 5. glxgears averages about
> 59.5 FPS. I'll add a bug report with pmOS to have them add that flag to
> their mesa build. Fedora added that flag to their builds:
> https://bugzilla.redhat.com/show_bug.cgi?id=1692426
>
> 19.1.0-rc5 still doesn't work for me due to the original error.
>
> Brian
>
You probably want '--buildtype=release' instead of '-Db_ndebug=true'
More information about the mesa-dev
mailing list