[Mesa-dev] [PATCH 1/2] i965: Add SKL support to brw_miptree_get_horizontal_slice_pitch().
Jason Ekstrand
jason at jlekstrand.net
Tue Aug 11 12:55:04 PDT 2015
On Tue, Aug 11, 2015 at 2:45 AM, Francisco Jerez <currojerez at riseup.net> wrote:
> Jason Ekstrand <jason at jlekstrand.net> writes:
>
>> On Sat, Aug 8, 2015 at 2:58 AM, Francisco Jerez <currojerez at riseup.net> wrote:
>>> Jason Ekstrand <jason at jlekstrand.net> writes:
>>>
>>>> I'm not a huge fan of this patch. Really, given how complicated 3-D
>>>> textures are on SKL, there really is no sensible horizontal slice
>>>> pitch. We could return 0 as an "invalid value" but I think I'd rather
>>>> keep it an assert. Code that is dealing with 3-D textures should no
>>>> better than to just blindly call this function on SKL.
>>>> --Jason
>>>
>>> How so? The sub-tile structure may indeed be more complicated on SKL,
>>> but the way how Z-slices of whole tiles are laid out in 2D memory for 3D
>>> textures is even simpler than on earlier generations -- Say a given
>>> tile-slice of LOD l starts at 2D coordinates (x, y), the next tile-slice
>>> will start at (x, y + qpitch), IOW the horizontal offset between
>>> tile-slices is zero which is what this patch does. We could probably
>>> keep the assertion I had but that would complicate
>>> update_texture_image_param() a bit more so I'd rather do what AFAIUI is
>>> the right thing here.
>>
>> Doing a little spelunking, it appears as if the code this patch is
>> modifying is only used for setting up image uniforms (i.e., it's dead
>> at the moment) and was pushed without review. *sigh*
>>
>> Given that, this patch certainly doesn't break anything and seems to
>> do what you claim it does so I'm fine with it. That said, please do a
>> follow-on patch that actually documents these new tex_layout
>> entrypoints. In particular, it should be documented what value they
>> compute/return. The above description, re-written in a form more
>> appropriate for a comment, is probably sufficient for
>> get_horizontal_slice_pitch. Assuming the follow-on will happen,
>>
>
> There is some documentation about them in the intel_mipmap_tree.h header
> file, let me know if it's not sufficient for you so I write the
> follow-up.
Hrm... I thought we usually put documentation in the C file; I guess
not in the case of miptree code... oh, well.
Yes, I do think it should be expanded. Especially since the comment
explicitly mentions 2-d miptree layout but it's really for 3-d
textures. :-)
--Jason
>> Reviewed-by: Jason Ekstrand <jason.ekstrand at intel.com>
>>
>> Go land things! You can also apply my R-B to the patch that enables
>> the extension (I don't want dig through my e-mail so I can respond to
>> the specific patch.)
>>
> Cool, thanks.
>
>> --Jason
>>
>>>>
>>>> On Wed, May 13, 2015 at 9:37 AM, Francisco Jerez <currojerez at riseup.net> wrote:
>>>>> ---
>>>>> src/mesa/drivers/dri/i965/brw_tex_layout.c | 4 +---
>>>>> 1 file changed, 1 insertion(+), 3 deletions(-)
>>>>>
>>>>> diff --git a/src/mesa/drivers/dri/i965/brw_tex_layout.c b/src/mesa/drivers/dri/i965/brw_tex_layout.c
>>>>> index 72b02a2..6c6dc5c 100644
>>>>> --- a/src/mesa/drivers/dri/i965/brw_tex_layout.c
>>>>> +++ b/src/mesa/drivers/dri/i965/brw_tex_layout.c
>>>>> @@ -281,9 +281,7 @@ brw_miptree_get_horizontal_slice_pitch(const struct brw_context *brw,
>>>>> const struct intel_mipmap_tree *mt,
>>>>> unsigned level)
>>>>> {
>>>>> - assert(brw->gen < 9);
>>>>> -
>>>>> - if (mt->target == GL_TEXTURE_3D ||
>>>>> + if ((brw->gen < 9 && mt->target == GL_TEXTURE_3D) ||
>>>>> (brw->gen == 4 && mt->target == GL_TEXTURE_CUBE_MAP)) {
>>>>> return ALIGN(minify(mt->physical_width0, level), mt->align_w);
>>>>> } else {
>>>>> --
>>>>> 2.3.5
>>>>>
>>>>> _______________________________________________
>>>>> mesa-dev mailing list
>>>>> mesa-dev at lists.freedesktop.org
>>>>> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list