On 03/14/2014 11:40 AM, Pohjolainen, Topi wrote:
> On Tue, Mar 11, 2014 at 11:48:51PM -0700, Kenneth Graunke wrote:
>> Previously, both move_uniform_array_access_to_pull_constants() and
>> setup_pull_constants() maintained stack-local arrays with this
>> information.  Storing this information will allow it to be used from
>> multiple functions, allowing us to split and move code around.
>>
>> We'll also eventually want to pass pull constant location information
>> to the SIMD16 compile.  Saving this information will help us do that.
>>
>> Unfortunately, the two functions *cannot* share the contents of the
>> array just yet.  remove_dead_constants() renumbers all the UNIFORM
>> registers to be contiguous starting at zero, so the two functions
>> talk about uniforms using different names.  We can't even remap them,
>> since move_uniform_array_access_to_pull_constants() deletes UNIFORM
>> registers that are only accessed with reladdr, so remove_dead_constants
>> can't even see them.
>>
>> This situation will improve in the next few patches.
>>
>> Signed-off-by: Kenneth Graunke <kenn...@whitecape.org>
>> ---
>>  src/mesa/drivers/dri/i965/brw_fs.cpp         | 7 +++++--
>>  src/mesa/drivers/dri/i965/brw_fs.h           | 6 ++++++
>>  src/mesa/drivers/dri/i965/brw_fs_visitor.cpp | 1 +
>>  3 files changed, 12 insertions(+), 2 deletions(-)
>>
>> diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp 
>> b/src/mesa/drivers/dri/i965/brw_fs.cpp
>> index c24d2f8..8faf401 100644
>> --- a/src/mesa/drivers/dri/i965/brw_fs.cpp
>> +++ b/src/mesa/drivers/dri/i965/brw_fs.cpp
>> @@ -1827,7 +1827,7 @@ fs_visitor::remove_dead_constants()
>>  void
>>  fs_visitor::move_uniform_array_access_to_pull_constants()
>>  {
>> -   int pull_constant_loc[uniforms];
>> +   pull_constant_loc = ralloc_array(mem_ctx, int, uniforms);
>>  
>>     for (unsigned int i = 0; i < uniforms; i++) {
>>        pull_constant_loc[i] = -1;
>> @@ -1884,6 +1884,9 @@ 
>> fs_visitor::move_uniform_array_access_to_pull_constants()
>>        }
>>     }
>>     invalidate_live_intervals();
> 
> I'm confused. I wondered what was the reason for patch number four removing
> this call. But this is not present in current master and the first patch does
> not introduce it either. Leftover from somewhere else, perhaps?

Sorry, I sent out a few patches separately, and one of them added this
call.  I've pushed those to master now.

Patch 4 actually just moves the call into demote_pull_constants() - it
still happens at the same time.

Attachment: signature.asc
Description: OpenPGP digital signature

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

Reply via email to