On Fri, Sep 7, 2018 at 11:09 AM, Danylo Piliaiev <danylo.pilia...@gmail.com> wrote: > > On 9/7/18 5:48 PM, Ilia Mirkin wrote: >> >> On Fri, Sep 7, 2018 at 10:41 AM, Danylo Piliaiev >> <danylo.pilia...@gmail.com> wrote: >>> >>> Comment for array_len field states: >>> "Indicates the number of array elements starting at >>> Base Array Layer." >>> >>> And most usages of array_len expect it to be equal or less than >>> total layers - base layer >>> >>> Fixes: 5a8c8903 >>> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107856 >>> >>> Signed-off-by: Danylo Piliaiev <danylo.pilia...@globallogic.com> >>> --- >>> src/mesa/drivers/dri/i965/brw_wm_surface_state.c | 6 ++++-- >>> 1 file changed, 4 insertions(+), 2 deletions(-) >>> >>> diff --git a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c >>> b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c >>> index 42af41aca3..6adf4a5836 100644 >>> --- a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c >>> +++ b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c >>> @@ -1539,6 +1539,8 @@ update_image_surface(struct brw_context *brw, >>> } else { >>> struct intel_texture_object *intel_obj = >>> intel_texture_object(obj); >>> struct intel_mipmap_tree *mt = intel_obj->mt; >>> + >>> + const unsigned base_layer = obj->MinLayer + u->_Layer; >>> const unsigned num_layers = u->Layered ? >>> get_image_num_layers(mt, obj->Target, u->Level) : 1; >>> >>> @@ -1546,8 +1548,8 @@ update_image_surface(struct brw_context *brw, >>> .format = format, >>> .base_level = obj->MinLevel + u->Level, >>> .levels = 1, >>> - .base_array_layer = obj->MinLayer + u->_Layer, >>> - .array_len = num_layers, >>> + .base_array_layer = base_layer, >>> + .array_len = num_layers - base_layer, >> >> See above - num_layers can be 1 if the image isn't bound as a layered >> image. But base layer can be whatever -- so this will end up as >> negative. I think the adjustment needs to be done only for the >> u->Layered case. > > Oh, I see it now, thanks! Unless Lionel's patch for this issue is better > I'll send v2 of my patch.
I believe yours is much closer to right. Lionel's was conceptually wrong. (Or I'm the one who's confused - reminder - I'm not an Intel driver developer, and ultimately won't approve or reject your patches. But I will point out things that I think are off.) -ilia _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev