On Thu, Apr 3, 2014 at 10:41 AM, Brian Paul <bri...@vmware.com> wrote: > On 04/03/2014 08:13 AM, Rob Clark wrote: >> >> On Thu, Apr 3, 2014 at 10:07 AM, Brian Paul <bri...@vmware.com> wrote: >>> >>> On 04/02/2014 11:17 PM, Thomas Hellstrom wrote: >>>> >>>> >>>> On 04/01/2014 05:04 PM, Rob Clark wrote: >>>>> >>>>> >>>>> From: Rob Clark <robcl...@freedesktop.org> >>>>> >>>>> Add support to property handle solid-fill src and/or mask. Without >>>>> this >>>>> we fallback to sw a lot for common things like text rendering. >>>>> >>>>> Signed-off-by: Rob Clark <robcl...@freedesktop.org> >>>>> --- >>>>> src/gallium/state_trackers/xa/xa_composite.c | 88 ++++---- >>>>> src/gallium/state_trackers/xa/xa_priv.h | 7 +- >>>>> src/gallium/state_trackers/xa/xa_renderer.c | 289 >>>>> ++++++++++++++++----------- >>>>> src/gallium/state_trackers/xa/xa_tgsi.c | 31 ++- >>>>> 4 files changed, 242 insertions(+), 173 deletions(-) >>>> >>>> >>>> >>>> Rob, >>>> While testing this patch it looks like we sometimes set two samplers, >>>> and the first one is NULL. >>>> The SVGA driver asserts on that condition. >>>> We might need to move the active sampler to the first entry in that >>>> case, and adjust tex coords and shader accordingly. >>>> >>>> I'll discuss with BrianP. >>> >>> >>> >>> I think the root problem is a disagreement between texture samplers and >>> sampler views. If a texture sampler is non-null, the corresponding >>> sampler >>> view be should be non-null too, and vice versa. >>> >>> We're tripping over an assertion when a a sampler view is non-null but >>> the >>> corresponding sampler is NULL. >> >> >> Right.. >> >> Well, I think it would be not to hard to make things always start with >> SAMP[0], which would avoid this. But I am pretty fuzzy about whether >> it is the driver or state tracker that is wrong here.. I started with >> the assumption that it was just a freedreno bug, but if it causes >> problem w/ vmware too, then maybe the state tracker is at fault. > > > I believe the general policy is that drivers can assume they're being passed > valid input and consistent state. State trackers shouldn't pass > inconsistent state to drivers. > > In this case, the number of texture samplers and sampler views is > inconsistent. The drivers could examine the current shader to determine > which samplers/views are actually used (which might be a subset of what was > specified by the state tracker). But that's extra work that all drivers > would have to implement. It seems much more economical to take care of this > in the state trackers.
ok.. I'll have a go later today at re-working this patch to just use SAMP[0..n] rather than hard-coding SAMP[0] to src and SAMP[1] to mask. That seems like the easiest way to fix this. I don't suppose you tested just the other 3 patches? If those are ok for vmware, I think we could go ahead and push 2/4 thru 4/4. BR, -R > -Brian _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev