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.
signature.asc
Description: OpenPGP digital signature
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev