diff options
Diffstat (limited to 'lib/mesa/src')
-rw-r--r-- | lib/mesa/src/amd/common/amd_kernel_code_t.h | 2 | ||||
-rw-r--r-- | lib/mesa/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_surface.h | 1 | ||||
-rw-r--r-- | lib/mesa/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.h | 5 | ||||
-rw-r--r-- | lib/mesa/src/compiler/glsl/glcpp/tests/147-undef-builtin-allowed.c.expected | 3 | ||||
-rw-r--r-- | lib/mesa/src/gbm/Makefile.sources | 1 | ||||
-rw-r--r-- | lib/mesa/src/glx/windows/Makefile.am | 3 | ||||
-rw-r--r-- | lib/mesa/src/intel/genxml/genX_pack.h | 2 | ||||
-rw-r--r-- | lib/mesa/src/intel/genxml/gen_macros.h | 3 | ||||
-rw-r--r-- | lib/mesa/src/intel/isl/gen_format_layout.py | 161 | ||||
-rw-r--r-- | lib/mesa/src/intel/isl/isl_format_layout.c | 389 | ||||
-rw-r--r-- | lib/mesa/src/intel/isl/isl_format_layout.csv | 14 | ||||
-rw-r--r-- | lib/mesa/src/intel/isl/isl_gen4.c | 51 | ||||
-rw-r--r-- | lib/mesa/src/intel/isl/isl_gen4.h | 5 | ||||
-rw-r--r-- | lib/mesa/src/intel/isl/isl_gen6.c | 30 | ||||
-rw-r--r-- | lib/mesa/src/intel/isl/tests/isl_surf_get_image_offset_test.c | 1 |
15 files changed, 101 insertions, 570 deletions
diff --git a/lib/mesa/src/amd/common/amd_kernel_code_t.h b/lib/mesa/src/amd/common/amd_kernel_code_t.h index f8e950851..d0d7809da 100644 --- a/lib/mesa/src/amd/common/amd_kernel_code_t.h +++ b/lib/mesa/src/amd/common/amd_kernel_code_t.h @@ -36,7 +36,7 @@ // Gets bits for specified mask from specified src packed instance. #define AMD_HSA_BITS_GET(src, mask) \ - ((src & mask) >> mask ## _SHIFT) + ((src & mask) >> mask ## _SHIFT) \ /* Every amd_*_code_t has the following properties, which are composed of * a number of bit fields. Every bit field has a mask (AMD_CODE_PROPERTY_*), diff --git a/lib/mesa/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_surface.h b/lib/mesa/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_surface.h index a5652a325..cdc8c81e4 100644 --- a/lib/mesa/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_surface.h +++ b/lib/mesa/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_surface.h @@ -28,5 +28,6 @@ #include <amdgpu.h> void radv_amdgpu_surface_init_functions(struct radv_amdgpu_winsys *ws); +ADDR_HANDLE radv_amdgpu_addr_create(struct amdgpu_gpu_info *amdinfo, int family, int rev_id, enum chip_class chip_class); #endif /* RADV_AMDGPU_SURFACE_H */ diff --git a/lib/mesa/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.h b/lib/mesa/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.h index 426cf692e..abb238b35 100644 --- a/lib/mesa/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.h +++ b/lib/mesa/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.h @@ -29,7 +29,6 @@ #define RADV_AMDGPU_WINSYS_H #include "radv_radeon_winsys.h" -#include "ac_gpu_info.h" #include "addrlib/addrinterface.h" #include <amdgpu.h> #include "util/list.h" @@ -42,8 +41,10 @@ struct radv_amdgpu_winsys { struct amdgpu_gpu_info amdinfo; ADDR_HANDLE addrlib; + uint32_t rev_id; + unsigned family; + bool debug_all_bos; - bool batchchain; pthread_mutex_t global_bo_list_lock; struct list_head global_bo_list; unsigned num_buffers; diff --git a/lib/mesa/src/compiler/glsl/glcpp/tests/147-undef-builtin-allowed.c.expected b/lib/mesa/src/compiler/glsl/glcpp/tests/147-undef-builtin-allowed.c.expected index f5517da3d..cd0071ff4 100644 --- a/lib/mesa/src/compiler/glsl/glcpp/tests/147-undef-builtin-allowed.c.expected +++ b/lib/mesa/src/compiler/glsl/glcpp/tests/147-undef-builtin-allowed.c.expected @@ -1,6 +1,3 @@ -0:2(1): preprocessor warning: names containing consecutive underscores are reserved. -0:3(1): preprocessor warning: names containing consecutive underscores are reserved. -0:4(1): preprocessor warning: names containing consecutive underscores are reserved. #version 110 diff --git a/lib/mesa/src/gbm/Makefile.sources b/lib/mesa/src/gbm/Makefile.sources index 461025c1a..7a2d6a435 100644 --- a/lib/mesa/src/gbm/Makefile.sources +++ b/lib/mesa/src/gbm/Makefile.sources @@ -1,6 +1,7 @@ gbm_core_FILES = \ main/backend.c \ main/backend.h \ + main/common_drm.h \ main/gbm.c \ main/gbm.h \ main/gbmint.h diff --git a/lib/mesa/src/glx/windows/Makefile.am b/lib/mesa/src/glx/windows/Makefile.am index f84288b93..980698823 100644 --- a/lib/mesa/src/glx/windows/Makefile.am +++ b/lib/mesa/src/glx/windows/Makefile.am @@ -24,8 +24,9 @@ libwindowsglx_la_CFLAGS = \ -I$(top_srcdir)/src \ -I$(top_srcdir)/src/glx \ -I$(top_srcdir)/src/mapi \ - -I$(top_builddir)/src/mapi/glapi \ -I$(top_srcdir)/src/mapi/glapi \ + -I$(top_builddir)/src/mapi/glapi \ $(VISIBILITY_CFLAGS) \ + $(SHARED_GLAPI_CFLAGS) \ $(DEFINES) \ $(X11_INCLUDES) diff --git a/lib/mesa/src/intel/genxml/genX_pack.h b/lib/mesa/src/intel/genxml/genX_pack.h index 187e75c59..2ec222696 100644 --- a/lib/mesa/src/intel/genxml/genX_pack.h +++ b/lib/mesa/src/intel/genxml/genX_pack.h @@ -44,8 +44,6 @@ # include "genxml/gen8_pack.h" #elif (GEN_VERSIONx10 == 90) # include "genxml/gen9_pack.h" -#elif (GEN_VERSIONx10 == 100) -# include "genxml/gen10_pack.h" #else # error "Need to add a pack header include for this gen" #endif diff --git a/lib/mesa/src/intel/genxml/gen_macros.h b/lib/mesa/src/intel/genxml/gen_macros.h index a85c08250..b4941b971 100644 --- a/lib/mesa/src/intel/genxml/gen_macros.h +++ b/lib/mesa/src/intel/genxml/gen_macros.h @@ -85,9 +85,6 @@ #elif (GEN_VERSIONx10 == 90) # define GENX(X) GEN9_##X # define genX(x) gen9_##x -#elif (GEN_VERSIONx10 == 100) -# define GENX(X) GEN10_##X -# define genX(x) gen10_##x #else # error "Need to add prefixing macros for this gen" #endif diff --git a/lib/mesa/src/intel/isl/gen_format_layout.py b/lib/mesa/src/intel/isl/gen_format_layout.py index 0ca42dbab..f52e45499 100644 --- a/lib/mesa/src/intel/isl/gen_format_layout.py +++ b/lib/mesa/src/intel/isl/gen_format_layout.py @@ -32,76 +32,64 @@ from mako import template # Load the template, ensure that __future__.division is imported, and set the # bytes encoding to be utf-8. This last bit is important to getting simple # consistent behavior for python 3 when we get there. -TEMPLATE = template.Template(future_imports=['division'], - output_encoding='utf-8', - text="""\ -/* This file is autogenerated by gen_format_layout.py. DO NOT EDIT! */ - -/* - * Copyright 2015 Intel Corporation - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -#include "isl/isl.h" - -const struct isl_format_layout -isl_format_layouts[] = { -% for format in formats: - [ISL_FORMAT_${format.name}] = { - .format = ISL_FORMAT_${format.name}, - .name = "ISL_FORMAT_${format.name}", - .bpb = ${format.bpb}, - .bw = ${format.bw}, - .bh = ${format.bh}, - .bd = ${format.bd}, - .channels = { - % for mask in ['r', 'g', 'b', 'a', 'l', 'i', 'p']: - <% channel = getattr(format, mask, None) %>\\ - % if channel.type is not None: - .${mask} = { ISL_${channel.type}, ${channel.size} }, - % else: - .${mask} = {}, - % endif - % endfor - }, - .colorspace = ISL_COLORSPACE_${format.colorspace}, - .txc = ISL_TXC_${format.txc}, - }, - -% endfor -}; - -enum isl_format -isl_format_srgb_to_linear(enum isl_format format) -{ - switch (format) { -% for srgb, rgb in srgb_to_linear_map: - case ISL_FORMAT_${srgb}: - return ISL_FORMAT_${rgb}; -%endfor - default: - return format; - } -} -""") +TEMPLATE = template.Template( + text=textwrap.dedent("""\ + /* This file is autogenerated by gen_format_layout.py. DO NOT EDIT! */ + + /* + * Copyright 2015 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + + #include "isl/isl.h" + + const struct isl_format_layout + isl_format_layouts[] = { + % for format in formats: + [ISL_FORMAT_${format.name}] = { + .format = ISL_FORMAT_${format.name}, + .name = "ISL_FORMAT_${format.name}", + .bpb = ${format.bpb}, + .bw = ${format.bw}, + .bh = ${format.bh}, + .bd = ${format.bd}, + .channels = { + % for mask in ['r', 'g', 'b', 'a', 'l', 'i', 'p']: + <% channel = getattr(format, mask, None) %>\\ + % if channel.type is not None: + .${mask} = { ISL_${channel.type}, ${channel.size} }, + % else: + .${mask} = {}, + % endif + % endfor + }, + .colorspace = ISL_COLORSPACE_${format.colorspace}, + .txc = ISL_TXC_${format.txc}, + }, + + % endfor + }; + """), + future_imports=['division'], + output_encoding='utf-8') class Channel(object): @@ -180,34 +168,6 @@ def reader(csvfile): if line and not line[0].startswith('#'): yield line -def get_srgb_to_linear_map(formats): - """Compute a map from sRGB to linear formats. - - This function uses some probably somewhat fragile string munging to do - the conversion. However, we do assert that, if it's SRGB, the munging - succeeded so that gives some safety. - """ - names = {f.name for f in formats} - for fmt in formats: - if fmt.colorspace != 'SRGB': - continue - - replacements = [ - ('_SRGB', ''), - ('SRGB', 'RGB'), - ('U8SRGB', 'FLT16'), - ] - - found = False; - for rep in replacements: - rgb_name = fmt.name.replace(rep[0], rep[1]) - if rgb_name in names: - found = True - yield fmt.name, rgb_name - break; - - # We should have found a format name - assert found def main(): """Main function.""" @@ -224,14 +184,11 @@ def main(): # problem: Unicode can be rendered even if the shell calling this script # doesn't. with open(args.out, 'wb') as f: - formats = [Format(l) for l in reader(args.csv)] try: # This basically does lazy evaluation and initialization, which # saves on memory and startup overhead. f.write(TEMPLATE.render( - formats = formats, - srgb_to_linear_map = list(get_srgb_to_linear_map(formats)), - )) + formats=(Format(l) for l in reader(args.csv)))) except Exception: # In the even there's an error this imports some helpers from mako # to print a useful stack trace and prints it, then exits with diff --git a/lib/mesa/src/intel/isl/isl_format_layout.c b/lib/mesa/src/intel/isl/isl_format_layout.c index 36ce54874..c05152163 100644 --- a/lib/mesa/src/intel/isl/isl_format_layout.c +++ b/lib/mesa/src/intel/isl/isl_format_layout.c @@ -3,24 +3,24 @@ /* * Copyright 2015 Intel Corporation * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. */ #include "isl/isl.h" @@ -5027,286 +5027,6 @@ isl_format_layouts[] = { .txc = ISL_TXC_ASTC, }, - [ISL_FORMAT_ASTC_HDR_2D_4X4_FLT16] = { - .format = ISL_FORMAT_ASTC_HDR_2D_4X4_FLT16, - .name = "ISL_FORMAT_ASTC_HDR_2D_4X4_FLT16", - .bpb = 128, - .bw = 4, - .bh = 4, - .bd = 1, - .channels = { - .r = { ISL_SFLOAT, 16 }, - .g = { ISL_SFLOAT, 16 }, - .b = { ISL_SFLOAT, 16 }, - .a = { ISL_SFLOAT, 16 }, - .l = {}, - .i = {}, - .p = {}, - }, - .colorspace = ISL_COLORSPACE_LINEAR, - .txc = ISL_TXC_ASTC, - }, - - [ISL_FORMAT_ASTC_HDR_2D_5X4_FLT16] = { - .format = ISL_FORMAT_ASTC_HDR_2D_5X4_FLT16, - .name = "ISL_FORMAT_ASTC_HDR_2D_5X4_FLT16", - .bpb = 128, - .bw = 5, - .bh = 4, - .bd = 1, - .channels = { - .r = { ISL_SFLOAT, 16 }, - .g = { ISL_SFLOAT, 16 }, - .b = { ISL_SFLOAT, 16 }, - .a = { ISL_SFLOAT, 16 }, - .l = {}, - .i = {}, - .p = {}, - }, - .colorspace = ISL_COLORSPACE_LINEAR, - .txc = ISL_TXC_ASTC, - }, - - [ISL_FORMAT_ASTC_HDR_2D_5X5_FLT16] = { - .format = ISL_FORMAT_ASTC_HDR_2D_5X5_FLT16, - .name = "ISL_FORMAT_ASTC_HDR_2D_5X5_FLT16", - .bpb = 128, - .bw = 5, - .bh = 5, - .bd = 1, - .channels = { - .r = { ISL_SFLOAT, 16 }, - .g = { ISL_SFLOAT, 16 }, - .b = { ISL_SFLOAT, 16 }, - .a = { ISL_SFLOAT, 16 }, - .l = {}, - .i = {}, - .p = {}, - }, - .colorspace = ISL_COLORSPACE_LINEAR, - .txc = ISL_TXC_ASTC, - }, - - [ISL_FORMAT_ASTC_HDR_2D_6X5_FLT16] = { - .format = ISL_FORMAT_ASTC_HDR_2D_6X5_FLT16, - .name = "ISL_FORMAT_ASTC_HDR_2D_6X5_FLT16", - .bpb = 128, - .bw = 6, - .bh = 5, - .bd = 1, - .channels = { - .r = { ISL_SFLOAT, 16 }, - .g = { ISL_SFLOAT, 16 }, - .b = { ISL_SFLOAT, 16 }, - .a = { ISL_SFLOAT, 16 }, - .l = {}, - .i = {}, - .p = {}, - }, - .colorspace = ISL_COLORSPACE_LINEAR, - .txc = ISL_TXC_ASTC, - }, - - [ISL_FORMAT_ASTC_HDR_2D_6X6_FLT16] = { - .format = ISL_FORMAT_ASTC_HDR_2D_6X6_FLT16, - .name = "ISL_FORMAT_ASTC_HDR_2D_6X6_FLT16", - .bpb = 128, - .bw = 6, - .bh = 6, - .bd = 1, - .channels = { - .r = { ISL_SFLOAT, 16 }, - .g = { ISL_SFLOAT, 16 }, - .b = { ISL_SFLOAT, 16 }, - .a = { ISL_SFLOAT, 16 }, - .l = {}, - .i = {}, - .p = {}, - }, - .colorspace = ISL_COLORSPACE_LINEAR, - .txc = ISL_TXC_ASTC, - }, - - [ISL_FORMAT_ASTC_HDR_2D_8X5_FLT16] = { - .format = ISL_FORMAT_ASTC_HDR_2D_8X5_FLT16, - .name = "ISL_FORMAT_ASTC_HDR_2D_8X5_FLT16", - .bpb = 128, - .bw = 8, - .bh = 5, - .bd = 1, - .channels = { - .r = { ISL_SFLOAT, 16 }, - .g = { ISL_SFLOAT, 16 }, - .b = { ISL_SFLOAT, 16 }, - .a = { ISL_SFLOAT, 16 }, - .l = {}, - .i = {}, - .p = {}, - }, - .colorspace = ISL_COLORSPACE_LINEAR, - .txc = ISL_TXC_ASTC, - }, - - [ISL_FORMAT_ASTC_HDR_2D_8X6_FLT16] = { - .format = ISL_FORMAT_ASTC_HDR_2D_8X6_FLT16, - .name = "ISL_FORMAT_ASTC_HDR_2D_8X6_FLT16", - .bpb = 128, - .bw = 8, - .bh = 6, - .bd = 1, - .channels = { - .r = { ISL_SFLOAT, 16 }, - .g = { ISL_SFLOAT, 16 }, - .b = { ISL_SFLOAT, 16 }, - .a = { ISL_SFLOAT, 16 }, - .l = {}, - .i = {}, - .p = {}, - }, - .colorspace = ISL_COLORSPACE_LINEAR, - .txc = ISL_TXC_ASTC, - }, - - [ISL_FORMAT_ASTC_HDR_2D_8X8_FLT16] = { - .format = ISL_FORMAT_ASTC_HDR_2D_8X8_FLT16, - .name = "ISL_FORMAT_ASTC_HDR_2D_8X8_FLT16", - .bpb = 128, - .bw = 8, - .bh = 8, - .bd = 1, - .channels = { - .r = { ISL_SFLOAT, 16 }, - .g = { ISL_SFLOAT, 16 }, - .b = { ISL_SFLOAT, 16 }, - .a = { ISL_SFLOAT, 16 }, - .l = {}, - .i = {}, - .p = {}, - }, - .colorspace = ISL_COLORSPACE_LINEAR, - .txc = ISL_TXC_ASTC, - }, - - [ISL_FORMAT_ASTC_HDR_2D_10X5_FLT16] = { - .format = ISL_FORMAT_ASTC_HDR_2D_10X5_FLT16, - .name = "ISL_FORMAT_ASTC_HDR_2D_10X5_FLT16", - .bpb = 128, - .bw = 10, - .bh = 5, - .bd = 1, - .channels = { - .r = { ISL_SFLOAT, 16 }, - .g = { ISL_SFLOAT, 16 }, - .b = { ISL_SFLOAT, 16 }, - .a = { ISL_SFLOAT, 16 }, - .l = {}, - .i = {}, - .p = {}, - }, - .colorspace = ISL_COLORSPACE_LINEAR, - .txc = ISL_TXC_ASTC, - }, - - [ISL_FORMAT_ASTC_HDR_2D_10X6_FLT16] = { - .format = ISL_FORMAT_ASTC_HDR_2D_10X6_FLT16, - .name = "ISL_FORMAT_ASTC_HDR_2D_10X6_FLT16", - .bpb = 128, - .bw = 10, - .bh = 6, - .bd = 1, - .channels = { - .r = { ISL_SFLOAT, 16 }, - .g = { ISL_SFLOAT, 16 }, - .b = { ISL_SFLOAT, 16 }, - .a = { ISL_SFLOAT, 16 }, - .l = {}, - .i = {}, - .p = {}, - }, - .colorspace = ISL_COLORSPACE_LINEAR, - .txc = ISL_TXC_ASTC, - }, - - [ISL_FORMAT_ASTC_HDR_2D_10X8_FLT16] = { - .format = ISL_FORMAT_ASTC_HDR_2D_10X8_FLT16, - .name = "ISL_FORMAT_ASTC_HDR_2D_10X8_FLT16", - .bpb = 128, - .bw = 10, - .bh = 8, - .bd = 1, - .channels = { - .r = { ISL_SFLOAT, 16 }, - .g = { ISL_SFLOAT, 16 }, - .b = { ISL_SFLOAT, 16 }, - .a = { ISL_SFLOAT, 16 }, - .l = {}, - .i = {}, - .p = {}, - }, - .colorspace = ISL_COLORSPACE_LINEAR, - .txc = ISL_TXC_ASTC, - }, - - [ISL_FORMAT_ASTC_HDR_2D_10X10_FLT16] = { - .format = ISL_FORMAT_ASTC_HDR_2D_10X10_FLT16, - .name = "ISL_FORMAT_ASTC_HDR_2D_10X10_FLT16", - .bpb = 128, - .bw = 10, - .bh = 10, - .bd = 1, - .channels = { - .r = { ISL_SFLOAT, 16 }, - .g = { ISL_SFLOAT, 16 }, - .b = { ISL_SFLOAT, 16 }, - .a = { ISL_SFLOAT, 16 }, - .l = {}, - .i = {}, - .p = {}, - }, - .colorspace = ISL_COLORSPACE_LINEAR, - .txc = ISL_TXC_ASTC, - }, - - [ISL_FORMAT_ASTC_HDR_2D_12X10_FLT16] = { - .format = ISL_FORMAT_ASTC_HDR_2D_12X10_FLT16, - .name = "ISL_FORMAT_ASTC_HDR_2D_12X10_FLT16", - .bpb = 128, - .bw = 12, - .bh = 10, - .bd = 1, - .channels = { - .r = { ISL_SFLOAT, 16 }, - .g = { ISL_SFLOAT, 16 }, - .b = { ISL_SFLOAT, 16 }, - .a = { ISL_SFLOAT, 16 }, - .l = {}, - .i = {}, - .p = {}, - }, - .colorspace = ISL_COLORSPACE_LINEAR, - .txc = ISL_TXC_ASTC, - }, - - [ISL_FORMAT_ASTC_HDR_2D_12X12_FLT16] = { - .format = ISL_FORMAT_ASTC_HDR_2D_12X12_FLT16, - .name = "ISL_FORMAT_ASTC_HDR_2D_12X12_FLT16", - .bpb = 128, - .bw = 12, - .bh = 12, - .bd = 1, - .channels = { - .r = { ISL_SFLOAT, 16 }, - .g = { ISL_SFLOAT, 16 }, - .b = { ISL_SFLOAT, 16 }, - .a = { ISL_SFLOAT, 16 }, - .l = {}, - .i = {}, - .p = {}, - }, - .colorspace = ISL_COLORSPACE_LINEAR, - .txc = ISL_TXC_ASTC, - }, - [ISL_FORMAT_HIZ] = { .format = ISL_FORMAT_HIZ, .name = "ISL_FORMAT_HIZ", @@ -5588,80 +5308,3 @@ isl_format_layouts[] = { }, }; - -enum isl_format -isl_format_srgb_to_linear(enum isl_format format) -{ - switch (format) { - case ISL_FORMAT_B8G8R8A8_UNORM_SRGB: - return ISL_FORMAT_B8G8R8A8_UNORM; - case ISL_FORMAT_R10G10B10A2_UNORM_SRGB: - return ISL_FORMAT_R10G10B10A2_UNORM; - case ISL_FORMAT_R8G8B8A8_UNORM_SRGB: - return ISL_FORMAT_R8G8B8A8_UNORM; - case ISL_FORMAT_B10G10R10A2_UNORM_SRGB: - return ISL_FORMAT_B10G10R10A2_UNORM; - case ISL_FORMAT_B8G8R8X8_UNORM_SRGB: - return ISL_FORMAT_B8G8R8X8_UNORM; - case ISL_FORMAT_R8G8B8X8_UNORM_SRGB: - return ISL_FORMAT_R8G8B8X8_UNORM; - case ISL_FORMAT_B5G6R5_UNORM_SRGB: - return ISL_FORMAT_B5G6R5_UNORM; - case ISL_FORMAT_B5G5R5A1_UNORM_SRGB: - return ISL_FORMAT_B5G5R5A1_UNORM; - case ISL_FORMAT_B4G4R4A4_UNORM_SRGB: - return ISL_FORMAT_B4G4R4A4_UNORM; - case ISL_FORMAT_L8A8_UNORM_SRGB: - return ISL_FORMAT_L8A8_UNORM; - case ISL_FORMAT_B5G5R5X1_UNORM_SRGB: - return ISL_FORMAT_B5G5R5X1_UNORM; - case ISL_FORMAT_DXT1_RGB_SRGB: - return ISL_FORMAT_DXT1_RGB; - case ISL_FORMAT_BC1_UNORM_SRGB: - return ISL_FORMAT_BC1_UNORM; - case ISL_FORMAT_BC2_UNORM_SRGB: - return ISL_FORMAT_BC2_UNORM; - case ISL_FORMAT_BC3_UNORM_SRGB: - return ISL_FORMAT_BC3_UNORM; - case ISL_FORMAT_BC7_UNORM_SRGB: - return ISL_FORMAT_BC7_UNORM; - case ISL_FORMAT_R8G8B8_UNORM_SRGB: - return ISL_FORMAT_R8G8B8_UNORM; - case ISL_FORMAT_ETC2_SRGB8: - return ISL_FORMAT_ETC2_RGB8; - case ISL_FORMAT_ETC2_SRGB8_PTA: - return ISL_FORMAT_ETC2_RGB8_PTA; - case ISL_FORMAT_ETC2_EAC_SRGB8_A8: - return ISL_FORMAT_ETC2_EAC_SRGB8_A8; - case ISL_FORMAT_ASTC_LDR_2D_4X4_U8SRGB: - return ISL_FORMAT_ASTC_LDR_2D_4X4_U8SRGB; - case ISL_FORMAT_ASTC_LDR_2D_5X4_U8SRGB: - return ISL_FORMAT_ASTC_LDR_2D_5X4_U8SRGB; - case ISL_FORMAT_ASTC_LDR_2D_5X5_U8SRGB: - return ISL_FORMAT_ASTC_LDR_2D_5X5_U8SRGB; - case ISL_FORMAT_ASTC_LDR_2D_6X5_U8SRGB: - return ISL_FORMAT_ASTC_LDR_2D_6X5_U8SRGB; - case ISL_FORMAT_ASTC_LDR_2D_6X6_U8SRGB: - return ISL_FORMAT_ASTC_LDR_2D_6X6_U8SRGB; - case ISL_FORMAT_ASTC_LDR_2D_8X5_U8SRGB: - return ISL_FORMAT_ASTC_LDR_2D_8X5_U8SRGB; - case ISL_FORMAT_ASTC_LDR_2D_8X6_U8SRGB: - return ISL_FORMAT_ASTC_LDR_2D_8X6_U8SRGB; - case ISL_FORMAT_ASTC_LDR_2D_8X8_U8SRGB: - return ISL_FORMAT_ASTC_LDR_2D_8X8_U8SRGB; - case ISL_FORMAT_ASTC_LDR_2D_10X5_U8SRGB: - return ISL_FORMAT_ASTC_LDR_2D_10X5_U8SRGB; - case ISL_FORMAT_ASTC_LDR_2D_10X6_U8SRGB: - return ISL_FORMAT_ASTC_LDR_2D_10X6_U8SRGB; - case ISL_FORMAT_ASTC_LDR_2D_10X8_U8SRGB: - return ISL_FORMAT_ASTC_LDR_2D_10X8_U8SRGB; - case ISL_FORMAT_ASTC_LDR_2D_10X10_U8SRGB: - return ISL_FORMAT_ASTC_LDR_2D_10X10_U8SRGB; - case ISL_FORMAT_ASTC_LDR_2D_12X10_U8SRGB: - return ISL_FORMAT_ASTC_LDR_2D_12X10_U8SRGB; - case ISL_FORMAT_ASTC_LDR_2D_12X12_U8SRGB: - return ISL_FORMAT_ASTC_LDR_2D_12X12_U8SRGB; - default: - return format; - } -} diff --git a/lib/mesa/src/intel/isl/isl_format_layout.csv b/lib/mesa/src/intel/isl/isl_format_layout.csv index f340e30a1..f0f31c72f 100644 --- a/lib/mesa/src/intel/isl/isl_format_layout.csv +++ b/lib/mesa/src/intel/isl/isl_format_layout.csv @@ -314,20 +314,6 @@ ASTC_LDR_2D_10X8_FLT16 , 128, 10, 8, 1, sf16, sf16, sf16, sf16, , ASTC_LDR_2D_10X10_FLT16 , 128, 10, 10, 1, sf16, sf16, sf16, sf16, , , , linear, astc ASTC_LDR_2D_12X10_FLT16 , 128, 12, 10, 1, sf16, sf16, sf16, sf16, , , , linear, astc ASTC_LDR_2D_12X12_FLT16 , 128, 12, 12, 1, sf16, sf16, sf16, sf16, , , , linear, astc -ASTC_HDR_2D_4X4_FLT16 , 128, 4, 4, 1, sf16, sf16, sf16, sf16, , , , linear, astc -ASTC_HDR_2D_5X4_FLT16 , 128, 5, 4, 1, sf16, sf16, sf16, sf16, , , , linear, astc -ASTC_HDR_2D_5X5_FLT16 , 128, 5, 5, 1, sf16, sf16, sf16, sf16, , , , linear, astc -ASTC_HDR_2D_6X5_FLT16 , 128, 6, 5, 1, sf16, sf16, sf16, sf16, , , , linear, astc -ASTC_HDR_2D_6X6_FLT16 , 128, 6, 6, 1, sf16, sf16, sf16, sf16, , , , linear, astc -ASTC_HDR_2D_8X5_FLT16 , 128, 8, 5, 1, sf16, sf16, sf16, sf16, , , , linear, astc -ASTC_HDR_2D_8X6_FLT16 , 128, 8, 6, 1, sf16, sf16, sf16, sf16, , , , linear, astc -ASTC_HDR_2D_8X8_FLT16 , 128, 8, 8, 1, sf16, sf16, sf16, sf16, , , , linear, astc -ASTC_HDR_2D_10X5_FLT16 , 128, 10, 5, 1, sf16, sf16, sf16, sf16, , , , linear, astc -ASTC_HDR_2D_10X6_FLT16 , 128, 10, 6, 1, sf16, sf16, sf16, sf16, , , , linear, astc -ASTC_HDR_2D_10X8_FLT16 , 128, 10, 8, 1, sf16, sf16, sf16, sf16, , , , linear, astc -ASTC_HDR_2D_10X10_FLT16 , 128, 10, 10, 1, sf16, sf16, sf16, sf16, , , , linear, astc -ASTC_HDR_2D_12X10_FLT16 , 128, 12, 10, 1, sf16, sf16, sf16, sf16, , , , linear, astc -ASTC_HDR_2D_12X12_FLT16 , 128, 12, 12, 1, sf16, sf16, sf16, sf16, , , , linear, astc HIZ , 128, 8, 4, 1, , , , , , , , , hiz MCS_2X , 8, 1, 1, 1, , , , , , , , , mcs MCS_4X , 8, 1, 1, 1, , , , , , , , , mcs diff --git a/lib/mesa/src/intel/isl/isl_gen4.c b/lib/mesa/src/intel/isl/isl_gen4.c index 14706c895..9fed45410 100644 --- a/lib/mesa/src/intel/isl/isl_gen4.c +++ b/lib/mesa/src/intel/isl/isl_gen4.c @@ -38,57 +38,6 @@ isl_gen4_choose_msaa_layout(const struct isl_device *dev, } void -isl_gen4_filter_tiling(const struct isl_device *dev, - const struct isl_surf_init_info *restrict info, - isl_tiling_flags_t *flags) -{ - /* Gen4-5 only support linear, X, and Y-tiling. */ - *flags &= (ISL_TILING_LINEAR_BIT | ISL_TILING_X_BIT | ISL_TILING_Y0_BIT); - - if (isl_surf_usage_is_depth_or_stencil(info->usage)) { - assert(!ISL_DEV_USE_SEPARATE_STENCIL(dev)); - - /* From the g35 PRM Vol. 2, 3DSTATE_DEPTH_BUFFER::Tile Walk: - * - * "The Depth Buffer, if tiled, must use Y-Major tiling" - */ - *flags &= (ISL_TILING_LINEAR_BIT | ISL_TILING_Y0_BIT); - } - - if (info->usage & (ISL_SURF_USAGE_DISPLAY_ROTATE_90_BIT | - ISL_SURF_USAGE_DISPLAY_ROTATE_180_BIT | - ISL_SURF_USAGE_DISPLAY_ROTATE_270_BIT)) { - assert(*flags & ISL_SURF_USAGE_DISPLAY_BIT); - isl_finishme("%s:%s: handle rotated display surfaces", - __FILE__, __func__); - } - - if (info->usage & (ISL_SURF_USAGE_DISPLAY_FLIP_X_BIT | - ISL_SURF_USAGE_DISPLAY_FLIP_Y_BIT)) { - assert(*flags & ISL_SURF_USAGE_DISPLAY_BIT); - isl_finishme("%s:%s: handle flipped display surfaces", - __FILE__, __func__); - } - - if (info->usage & ISL_SURF_USAGE_DISPLAY_BIT) { - /* Before Skylake, the display engine does not accept Y */ - *flags &= (ISL_TILING_LINEAR_BIT | ISL_TILING_X_BIT); - } - - assert(info->samples == 1); - - /* From the g35 PRM, Volume 1, 11.5.5, "Per-Stream Tile Format Support": - * - * "NOTE: 128BPE Format Color buffer ( render target ) MUST be either - * TileX or Linear." - * - * This is required all the way up to Sandy Bridge. - */ - if (isl_format_get_layout(info->format)->bpb >= 128) - *flags &= ~ISL_TILING_Y0_BIT; -} - -void isl_gen4_choose_image_alignment_el(const struct isl_device *dev, const struct isl_surf_init_info *restrict info, enum isl_tiling tiling, diff --git a/lib/mesa/src/intel/isl/isl_gen4.h b/lib/mesa/src/intel/isl/isl_gen4.h index c04f7fbf8..dc6102bdf 100644 --- a/lib/mesa/src/intel/isl/isl_gen4.h +++ b/lib/mesa/src/intel/isl/isl_gen4.h @@ -37,11 +37,6 @@ isl_gen4_choose_msaa_layout(const struct isl_device *dev, enum isl_msaa_layout *msaa_layout); void -isl_gen4_filter_tiling(const struct isl_device *dev, - const struct isl_surf_init_info *restrict info, - isl_tiling_flags_t *flags); - -void isl_gen4_choose_image_alignment_el(const struct isl_device *dev, const struct isl_surf_init_info *restrict info, enum isl_tiling tiling, diff --git a/lib/mesa/src/intel/isl/isl_gen6.c b/lib/mesa/src/intel/isl/isl_gen6.c index 51f2100ac..b74690319 100644 --- a/lib/mesa/src/intel/isl/isl_gen6.c +++ b/lib/mesa/src/intel/isl/isl_gen6.c @@ -88,8 +88,6 @@ isl_gen6_choose_image_alignment_el(const struct isl_device *dev, * | format | halign | valign | * +------------------------+--------+--------+ * | YUV 4:2:2 formats | 4 | * | - * | BC1-5 | 4 | 4 | - * | FXT1 | 8 | 4 | * | uncompressed formats | 4 | * | * +------------------------+--------+--------+ * @@ -112,32 +110,38 @@ isl_gen6_choose_image_alignment_el(const struct isl_device *dev, */ if (isl_format_is_compressed(info->format)) { - /* Compressed formats have an alignment equal to their block size */ *image_align_el = isl_extent3d(1, 1, 1); return; } - /* Separate stencil requires 4x2 alignment */ - if (isl_surf_usage_is_stencil(info->usage) && - info->format == ISL_FORMAT_R8_UINT) { + if (isl_format_is_yuv(info->format)) { *image_align_el = isl_extent3d(4, 2, 1); return; } - /* Depth or combined depth stencil surfaces require 4x4 alignment */ - if (isl_surf_usage_is_depth_or_stencil(info->usage)) { + if (info->samples > 1) { *image_align_el = isl_extent3d(4, 4, 1); return; } - if (info->samples > 1) { + if (isl_surf_usage_is_depth_or_stencil(info->usage) && + !ISL_DEV_USE_SEPARATE_STENCIL(dev)) { + /* interleaved depthstencil buffer */ *image_align_el = isl_extent3d(4, 4, 1); return; } - /* For everything else, 4x2 is always a valid alignment. Since this is - * also the smallest alignment we can specify, we use 4x2 for everything - * else because it uses the least memory. - */ + if (isl_surf_usage_is_depth(info->usage)) { + /* separate depth buffer */ + *image_align_el = isl_extent3d(4, 4, 1); + return; + } + + if (isl_surf_usage_is_stencil(info->usage)) { + /* separate stencil buffer */ + *image_align_el = isl_extent3d(4, 2, 1); + return; + } + *image_align_el = isl_extent3d(4, 2, 1); } diff --git a/lib/mesa/src/intel/isl/tests/isl_surf_get_image_offset_test.c b/lib/mesa/src/intel/isl/tests/isl_surf_get_image_offset_test.c index 05fd79f3a..1b3dc58b0 100644 --- a/lib/mesa/src/intel/isl/tests/isl_surf_get_image_offset_test.c +++ b/lib/mesa/src/intel/isl/tests/isl_surf_get_image_offset_test.c @@ -256,6 +256,7 @@ test_bdw_3d_r8g8b8a8_unorm_256x256x256_levels09_tiley0(void) t_assert_image_alignment_el(&surf, 4, 4, 1); t_assert_image_alignment_sa(&surf, 4, 4, 1); + t_assert(isl_surf_get_array_pitch_el_rows(&surf) == 74916); t_assert(isl_surf_get_array_pitch_sa_rows(&surf) == isl_surf_get_array_pitch_el_rows(&surf)); |