GEN10_FORMAT_TABLE := $(LOCAL_PATH)/common/gfx10_format_table.py
-$(intermediates)/common/gfx10_format_table.h: $(GEN10_FORMAT_TABLE) $(GEN10_FORMAT_TABLE_INPUTS) $(GEN10_FORMAT_TABLE_DEP)
+$(intermediates)/common/gfx10_format_table.c: $(GEN10_FORMAT_TABLE) $(GEN10_FORMAT_TABLE_INPUTS) $(GEN10_FORMAT_TABLE_DEP)
@mkdir -p $(dir $@)
@echo "Gen Header: $(PRIVATE_MODULE) <= $(notdir $(@))"
$(hide) $(MESA_PYTHON2) $(GEN10_FORMAT_TABLE) $(GEN10_FORMAT_TABLE_INPUTS) > $@ || ($(RM) $@; false)
AMD_GENERATED_FILES = \
common/amdgfxregs.h \
- common/gfx10_format_table.h \
+ common/gfx10_format_table.c \
common/sid_tables.h
ACO_FILES = \
--- /dev/null
+/*
+ * Copyright © 2019 Advanced Micro Devices, Inc.
+ * All Rights Reserved.
+ *
+ * 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, sub license, 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 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
+ * NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS, AUTHORS
+ * AND/OR ITS SUPPLIERS 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 above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ */
+
+#ifndef GFX10_FORMAT_TABLE_H
+#define GFX10_FORMAT_TABLE_H
+
+#include <stdbool.h>
+#include "pipe/p_format.h"
+
+struct gfx10_format {
+ unsigned img_format:9;
+
+ /* Various formats are only supported with workarounds for vertex fetch,
+ * and some 32_32_32 formats are supported natively, but only for buffers
+ * (possibly with some image support, actually, but no filtering). */
+ bool buffers_only:1;
+};
+
+extern const struct gfx10_format gfx10_format_table[PIPE_FORMAT_COUNT];
+
+#endif /* GFX10_FORMAT_TABLE_H */
header_template = mako.template.Template("""\
// DO NOT EDIT -- AUTOMATICALLY GENERATED
+#include "gfx10_format_table.h"
+#include "amdgfxregs.h"
+
#define FMT(_img_format, ...) \
{ .img_format = V_008F0C_IMG_FORMAT_##_img_format, \
##__VA_ARGS__ }
-static const struct gfx10_format gfx10_format_table[PIPE_FORMAT_COUNT] = {
+const struct gfx10_format gfx10_format_table[PIPE_FORMAT_COUNT] = {
% for pipe_format, args in formats:
% if args is not None:
[${pipe_format}] = FMT(${args}),
capture : true,
)
-gfx10_format_table_h = custom_target(
- 'gfx10_format_table.h',
+gfx10_format_table_c = custom_target(
+ 'gfx10_format_table.c',
input : files(
'gfx10_format_table.py',
'../../util/format/u_format.csv', '../registers/gfx10-rsrc.json'
),
- output : 'gfx10_format_table.h',
+ output : 'gfx10_format_table.c',
command : [prog_python, '@INPUT@'],
capture : true,
depend_files : ['../registers/regdb.py']
libamd_common = static_library(
'amd_common',
- [amd_common_files, sid_tables_h, amdgfxregs_h, gfx10_format_table_h],
+ [amd_common_files, sid_tables_h, amdgfxregs_h, gfx10_format_table_c],
include_directories : [
inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux, inc_compiler, inc_mapi, inc_amd,
],
#include "util/u_resource.h"
#include "util/u_upload_mgr.h"
-struct gfx10_format {
- unsigned img_format : 9;
-
- /* Various formats are only supported with workarounds for vertex fetch,
- * and some 32_32_32 formats are supported natively, but only for buffers
- * (possibly with some image support, actually, but no filtering). */
- bool buffers_only : 1;
-};
-
-#include "amd/common/gfx10_format_table.h"
+#include "gfx10_format_table.h"
static unsigned si_map_swizzle(unsigned swizzle)
{