Re: [Mesa-dev] [PATCH 42/61] nir: Add a concept of per-member structs and a lowering pass

2018-03-28 Thread Jason Ekstrand
On March 28, 2018 15:25:59 Timothy Arceri wrote: On 29/03/18 08:23, Timothy Arceri wrote: On 29/03/18 05:34, Jason Ekstrand wrote: On March 27, 2018 21:16:25 Timothy Arceri wrote: So I've been thinking about structs and I'm pretty sure we should

Re: [Mesa-dev] [PATCH 42/61] nir: Add a concept of per-member structs and a lowering pass

2018-03-28 Thread Timothy Arceri
On 29/03/18 08:23, Timothy Arceri wrote: On 29/03/18 05:34, Jason Ekstrand wrote: On March 27, 2018 21:16:25 Timothy Arceri wrote: So I've been thinking about structs and I'm pretty sure we should be able to write some passes to completely lower them away. vertex

Re: [Mesa-dev] [PATCH 42/61] nir: Add a concept of per-member structs and a lowering pass

2018-03-28 Thread Timothy Arceri
On 29/03/18 05:34, Jason Ekstrand wrote: On March 27, 2018 21:16:25 Timothy Arceri wrote: So I've been thinking about structs and I'm pretty sure we should be able to write some passes to completely lower them away. vertex shader inputs, buffer block and shader

Re: [Mesa-dev] [PATCH 42/61] nir: Add a concept of per-member structs and a lowering pass

2018-03-28 Thread Jason Ekstrand
On March 27, 2018 21:16:25 Timothy Arceri wrote: So I've been thinking about structs and I'm pretty sure we should be able to write some passes to completely lower them away. vertex shader inputs, buffer block and shader interface blocks cannot contain structs so it

Re: [Mesa-dev] [PATCH 42/61] nir: Add a concept of per-member structs and a lowering pass

2018-03-27 Thread Timothy Arceri
So I've been thinking about structs and I'm pretty sure we should be able to write some passes to completely lower them away. vertex shader inputs, buffer block and shader interface blocks cannot contain structs so it seems to me the only blocker is the way we assign uniform and varying

[Mesa-dev] [PATCH 42/61] nir: Add a concept of per-member structs and a lowering pass

2018-03-23 Thread Jason Ekstrand
This adds a concept of "members" to a variable with an interface type. It allows you to specify the full variable data for each member of the interface instead of once for the variable. We also add a lowering pass to lower those variables to a sequence of variables and rewrite all the derefs