Re: [Mesa-dev] [PATCH] st/mesa: add missing ETC2 entries to format_map

2016-02-16 Thread Ilia Mirkin
Sounds reasonable. The original patch is

Reviewed-by: Ilia Mirkin 

On Tue, Feb 16, 2016 at 3:46 PM, Rob Clark  wrote:
> gave that a quick try.. and, well, I think that may just be the start
> of the rabbit-hole..
>
> 0xb69eb92c in __memcpy_neon () from /lib/libc.so.6
> (gdb) bt
> #0  0xb69eb92c in __memcpy_neon () from /lib/libc.so.6
> #1  0xb5ea63e0 in _mesa_store_compressed_texsubimage (ctx=0x2ff970,
> dims=2, texImage=0xb382ac50, xoffset=0, yoffset=0, zoffset=0,
> width=2048, height=2048, depth=1, format=37492,
> imageSize=2097152, data=0xb340) at
> ../../../src/mesa/main/texstore.c:1364
> #2  0xb5f60320 in st_CompressedTexSubImage (ctx=0x2ff970, dims=2,
> texImage=0xb382ac50, x=0, y=0, z=0, w=2048, h=2048, d=1, format=37492,
> imageSize=2097152, data=0x0)
> at ../../../src/mesa/state_tracker/st_cb_texture.c:2043
> #3  0xb5e8ece0 in _mesa_compressed_texture_sub_image (ctx=0x2ff970,
> dims=2, texObj=0xb382a9b0, texImage=0xb382ac50, target=3553, level=0,
> xoffset=0, yoffset=0, zoffset=0, width=2048,
> height=2048, depth=1, format=37492, imageSize=2097152, data=0x0)
> at ../../../src/mesa/main/teximage.c:4388
> #4  0xb5e8f350 in _mesa_CompressedTexSubImage2D (target=3553, level=0,
> xoffset=0, yoffset=0, width=2048, height=2048, format=37492,
> imageSize=2097152, data=0x0)
> at ../../../src/mesa/main/teximage.c:4509
> #5  0xb67cfadc in shared_dispatch_stub_412 (target=3553, level=0,
> xoffset=0, yoffset=0, width=2048, height=2048, format=37492,
> imageSize=2097152, data=0x0)
> at ./shared-glapi/glapi_mapi_tmp.h:19098
>
> I'll think I'll skip the fallback format_map entries for now, since a
> debug build assert is less obnoxious than a segfault..
>
> BR,
> -R
>
>
> On Tue, Feb 16, 2016 at 12:14 PM, Ilia Mirkin  wrote:
>> Should be noted that, not at all due to this patch,
>> glTexStorage(ETC1/ETC2) is broken on gallium drivers that don't
>> implement those formats in HW (i.e. use the sw fallback). This patch
>> makes it work for drivers that *do* support it in HW, but more work
>> needed for the other drivers. Maybe we should just have the
>> PIPE_FORMAT_RGBA8 stuff right in there as fallback formats? [Would
>> need to do that for ETC1 as well.]
>>
>> On Tue, Feb 16, 2016 at 12:04 PM, Rob Clark  wrote:
>>> From: Rob Clark 
>>>
>>> Noticed by Ilia when I was trying to figure out why some app was failing
>>> to use ETC2.
>>>
>>> Signed-off-by: Rob Clark 
>>> Reviewed-by: Ilia Mirkin 
>>> ---
>>>  src/mesa/state_tracker/st_format.c | 42 
>>> ++
>>>  1 file changed, 42 insertions(+)
>>>
>>> diff --git a/src/mesa/state_tracker/st_format.c 
>>> b/src/mesa/state_tracker/st_format.c
>>> index 2b92bad..82bf3a1 100644
>>> --- a/src/mesa/state_tracker/st_format.c
>>> +++ b/src/mesa/state_tracker/st_format.c
>>> @@ -1484,6 +1484,48 @@ static const struct format_mapping format_map[] = {
>>>{ PIPE_FORMAT_ETC1_RGB8, 0 }
>>> },
>>>
>>> +   /* ETC2 */
>>> +   {
>>> +  { GL_COMPRESSED_RGB8_ETC2, 0 },
>>> +  { PIPE_FORMAT_ETC2_RGB8, 0 }
>>> +   },
>>> +   {
>>> +  { GL_COMPRESSED_SRGB8_ETC2, 0 },
>>> +  { PIPE_FORMAT_ETC2_SRGB8, 0 }
>>> +   },
>>> +   {
>>> +  { GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2, 0 },
>>> +  { PIPE_FORMAT_ETC2_RGB8A1, 0 }
>>> +   },
>>> +   {
>>> +  { GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2, 0 },
>>> +  { PIPE_FORMAT_ETC2_SRGB8A1, 0 }
>>> +   },
>>> +   {
>>> +  { GL_COMPRESSED_RGBA8_ETC2_EAC, 0 },
>>> +  { PIPE_FORMAT_ETC2_RGBA8, 0 }
>>> +   },
>>> +   {
>>> +  { GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC, 0 },
>>> +  { PIPE_FORMAT_ETC2_SRGBA8, 0 }
>>> +   },
>>> +   {
>>> +  { GL_COMPRESSED_R11_EAC, 0 },
>>> +  { PIPE_FORMAT_ETC2_R11_UNORM, 0 }
>>> +   },
>>> +   {
>>> +  { GL_COMPRESSED_SIGNED_R11_EAC, 0 },
>>> +  { PIPE_FORMAT_ETC2_R11_SNORM, 0 }
>>> +   },
>>> +   {
>>> +  { GL_COMPRESSED_RG11_EAC, 0 },
>>> +  { PIPE_FORMAT_ETC2_RG11_UNORM, 0 }
>>> +   },
>>> +   {
>>> +  { GL_COMPRESSED_SIGNED_RG11_EAC, 0 },
>>> +  { PIPE_FORMAT_ETC2_RG11_SNORM, 0 }
>>> +   },
>>> +
>>> /* BPTC */
>>> {
>>>{ GL_COMPRESSED_RGBA_BPTC_UNORM, 0 },
>>> --
>>> 2.5.0
>>>
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH] st/mesa: add missing ETC2 entries to format_map

2016-02-16 Thread Rob Clark
gave that a quick try.. and, well, I think that may just be the start
of the rabbit-hole..

0xb69eb92c in __memcpy_neon () from /lib/libc.so.6
(gdb) bt
#0  0xb69eb92c in __memcpy_neon () from /lib/libc.so.6
#1  0xb5ea63e0 in _mesa_store_compressed_texsubimage (ctx=0x2ff970,
dims=2, texImage=0xb382ac50, xoffset=0, yoffset=0, zoffset=0,
width=2048, height=2048, depth=1, format=37492,
imageSize=2097152, data=0xb340) at
../../../src/mesa/main/texstore.c:1364
#2  0xb5f60320 in st_CompressedTexSubImage (ctx=0x2ff970, dims=2,
texImage=0xb382ac50, x=0, y=0, z=0, w=2048, h=2048, d=1, format=37492,
imageSize=2097152, data=0x0)
at ../../../src/mesa/state_tracker/st_cb_texture.c:2043
#3  0xb5e8ece0 in _mesa_compressed_texture_sub_image (ctx=0x2ff970,
dims=2, texObj=0xb382a9b0, texImage=0xb382ac50, target=3553, level=0,
xoffset=0, yoffset=0, zoffset=0, width=2048,
height=2048, depth=1, format=37492, imageSize=2097152, data=0x0)
at ../../../src/mesa/main/teximage.c:4388
#4  0xb5e8f350 in _mesa_CompressedTexSubImage2D (target=3553, level=0,
xoffset=0, yoffset=0, width=2048, height=2048, format=37492,
imageSize=2097152, data=0x0)
at ../../../src/mesa/main/teximage.c:4509
#5  0xb67cfadc in shared_dispatch_stub_412 (target=3553, level=0,
xoffset=0, yoffset=0, width=2048, height=2048, format=37492,
imageSize=2097152, data=0x0)
at ./shared-glapi/glapi_mapi_tmp.h:19098

I'll think I'll skip the fallback format_map entries for now, since a
debug build assert is less obnoxious than a segfault..

BR,
-R


On Tue, Feb 16, 2016 at 12:14 PM, Ilia Mirkin  wrote:
> Should be noted that, not at all due to this patch,
> glTexStorage(ETC1/ETC2) is broken on gallium drivers that don't
> implement those formats in HW (i.e. use the sw fallback). This patch
> makes it work for drivers that *do* support it in HW, but more work
> needed for the other drivers. Maybe we should just have the
> PIPE_FORMAT_RGBA8 stuff right in there as fallback formats? [Would
> need to do that for ETC1 as well.]
>
> On Tue, Feb 16, 2016 at 12:04 PM, Rob Clark  wrote:
>> From: Rob Clark 
>>
>> Noticed by Ilia when I was trying to figure out why some app was failing
>> to use ETC2.
>>
>> Signed-off-by: Rob Clark 
>> Reviewed-by: Ilia Mirkin 
>> ---
>>  src/mesa/state_tracker/st_format.c | 42 
>> ++
>>  1 file changed, 42 insertions(+)
>>
>> diff --git a/src/mesa/state_tracker/st_format.c 
>> b/src/mesa/state_tracker/st_format.c
>> index 2b92bad..82bf3a1 100644
>> --- a/src/mesa/state_tracker/st_format.c
>> +++ b/src/mesa/state_tracker/st_format.c
>> @@ -1484,6 +1484,48 @@ static const struct format_mapping format_map[] = {
>>{ PIPE_FORMAT_ETC1_RGB8, 0 }
>> },
>>
>> +   /* ETC2 */
>> +   {
>> +  { GL_COMPRESSED_RGB8_ETC2, 0 },
>> +  { PIPE_FORMAT_ETC2_RGB8, 0 }
>> +   },
>> +   {
>> +  { GL_COMPRESSED_SRGB8_ETC2, 0 },
>> +  { PIPE_FORMAT_ETC2_SRGB8, 0 }
>> +   },
>> +   {
>> +  { GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2, 0 },
>> +  { PIPE_FORMAT_ETC2_RGB8A1, 0 }
>> +   },
>> +   {
>> +  { GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2, 0 },
>> +  { PIPE_FORMAT_ETC2_SRGB8A1, 0 }
>> +   },
>> +   {
>> +  { GL_COMPRESSED_RGBA8_ETC2_EAC, 0 },
>> +  { PIPE_FORMAT_ETC2_RGBA8, 0 }
>> +   },
>> +   {
>> +  { GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC, 0 },
>> +  { PIPE_FORMAT_ETC2_SRGBA8, 0 }
>> +   },
>> +   {
>> +  { GL_COMPRESSED_R11_EAC, 0 },
>> +  { PIPE_FORMAT_ETC2_R11_UNORM, 0 }
>> +   },
>> +   {
>> +  { GL_COMPRESSED_SIGNED_R11_EAC, 0 },
>> +  { PIPE_FORMAT_ETC2_R11_SNORM, 0 }
>> +   },
>> +   {
>> +  { GL_COMPRESSED_RG11_EAC, 0 },
>> +  { PIPE_FORMAT_ETC2_RG11_UNORM, 0 }
>> +   },
>> +   {
>> +  { GL_COMPRESSED_SIGNED_RG11_EAC, 0 },
>> +  { PIPE_FORMAT_ETC2_RG11_SNORM, 0 }
>> +   },
>> +
>> /* BPTC */
>> {
>>{ GL_COMPRESSED_RGBA_BPTC_UNORM, 0 },
>> --
>> 2.5.0
>>
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH] st/mesa: add missing ETC2 entries to format_map

2016-02-16 Thread Ilia Mirkin
Should be noted that, not at all due to this patch,
glTexStorage(ETC1/ETC2) is broken on gallium drivers that don't
implement those formats in HW (i.e. use the sw fallback). This patch
makes it work for drivers that *do* support it in HW, but more work
needed for the other drivers. Maybe we should just have the
PIPE_FORMAT_RGBA8 stuff right in there as fallback formats? [Would
need to do that for ETC1 as well.]

On Tue, Feb 16, 2016 at 12:04 PM, Rob Clark  wrote:
> From: Rob Clark 
>
> Noticed by Ilia when I was trying to figure out why some app was failing
> to use ETC2.
>
> Signed-off-by: Rob Clark 
> Reviewed-by: Ilia Mirkin 
> ---
>  src/mesa/state_tracker/st_format.c | 42 
> ++
>  1 file changed, 42 insertions(+)
>
> diff --git a/src/mesa/state_tracker/st_format.c 
> b/src/mesa/state_tracker/st_format.c
> index 2b92bad..82bf3a1 100644
> --- a/src/mesa/state_tracker/st_format.c
> +++ b/src/mesa/state_tracker/st_format.c
> @@ -1484,6 +1484,48 @@ static const struct format_mapping format_map[] = {
>{ PIPE_FORMAT_ETC1_RGB8, 0 }
> },
>
> +   /* ETC2 */
> +   {
> +  { GL_COMPRESSED_RGB8_ETC2, 0 },
> +  { PIPE_FORMAT_ETC2_RGB8, 0 }
> +   },
> +   {
> +  { GL_COMPRESSED_SRGB8_ETC2, 0 },
> +  { PIPE_FORMAT_ETC2_SRGB8, 0 }
> +   },
> +   {
> +  { GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2, 0 },
> +  { PIPE_FORMAT_ETC2_RGB8A1, 0 }
> +   },
> +   {
> +  { GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2, 0 },
> +  { PIPE_FORMAT_ETC2_SRGB8A1, 0 }
> +   },
> +   {
> +  { GL_COMPRESSED_RGBA8_ETC2_EAC, 0 },
> +  { PIPE_FORMAT_ETC2_RGBA8, 0 }
> +   },
> +   {
> +  { GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC, 0 },
> +  { PIPE_FORMAT_ETC2_SRGBA8, 0 }
> +   },
> +   {
> +  { GL_COMPRESSED_R11_EAC, 0 },
> +  { PIPE_FORMAT_ETC2_R11_UNORM, 0 }
> +   },
> +   {
> +  { GL_COMPRESSED_SIGNED_R11_EAC, 0 },
> +  { PIPE_FORMAT_ETC2_R11_SNORM, 0 }
> +   },
> +   {
> +  { GL_COMPRESSED_RG11_EAC, 0 },
> +  { PIPE_FORMAT_ETC2_RG11_UNORM, 0 }
> +   },
> +   {
> +  { GL_COMPRESSED_SIGNED_RG11_EAC, 0 },
> +  { PIPE_FORMAT_ETC2_RG11_SNORM, 0 }
> +   },
> +
> /* BPTC */
> {
>{ GL_COMPRESSED_RGBA_BPTC_UNORM, 0 },
> --
> 2.5.0
>
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


[Mesa-dev] [PATCH] st/mesa: add missing ETC2 entries to format_map

2016-02-16 Thread Rob Clark
From: Rob Clark 

Noticed by Ilia when I was trying to figure out why some app was failing
to use ETC2.

Signed-off-by: Rob Clark 
Reviewed-by: Ilia Mirkin 
---
 src/mesa/state_tracker/st_format.c | 42 ++
 1 file changed, 42 insertions(+)

diff --git a/src/mesa/state_tracker/st_format.c 
b/src/mesa/state_tracker/st_format.c
index 2b92bad..82bf3a1 100644
--- a/src/mesa/state_tracker/st_format.c
+++ b/src/mesa/state_tracker/st_format.c
@@ -1484,6 +1484,48 @@ static const struct format_mapping format_map[] = {
   { PIPE_FORMAT_ETC1_RGB8, 0 }
},
 
+   /* ETC2 */
+   {
+  { GL_COMPRESSED_RGB8_ETC2, 0 },
+  { PIPE_FORMAT_ETC2_RGB8, 0 }
+   },
+   {
+  { GL_COMPRESSED_SRGB8_ETC2, 0 },
+  { PIPE_FORMAT_ETC2_SRGB8, 0 }
+   },
+   {
+  { GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2, 0 },
+  { PIPE_FORMAT_ETC2_RGB8A1, 0 }
+   },
+   {
+  { GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2, 0 },
+  { PIPE_FORMAT_ETC2_SRGB8A1, 0 }
+   },
+   {
+  { GL_COMPRESSED_RGBA8_ETC2_EAC, 0 },
+  { PIPE_FORMAT_ETC2_RGBA8, 0 }
+   },
+   {
+  { GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC, 0 },
+  { PIPE_FORMAT_ETC2_SRGBA8, 0 }
+   },
+   {
+  { GL_COMPRESSED_R11_EAC, 0 },
+  { PIPE_FORMAT_ETC2_R11_UNORM, 0 }
+   },
+   {
+  { GL_COMPRESSED_SIGNED_R11_EAC, 0 },
+  { PIPE_FORMAT_ETC2_R11_SNORM, 0 }
+   },
+   {
+  { GL_COMPRESSED_RG11_EAC, 0 },
+  { PIPE_FORMAT_ETC2_RG11_UNORM, 0 }
+   },
+   {
+  { GL_COMPRESSED_SIGNED_RG11_EAC, 0 },
+  { PIPE_FORMAT_ETC2_RG11_SNORM, 0 }
+   },
+
/* BPTC */
{
   { GL_COMPRESSED_RGBA_BPTC_UNORM, 0 },
-- 
2.5.0

___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev