mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 13:28:06 +02:00
radeonsi: Define gfx10_format in the common header.
So we don't have to have multiple definitions of the struct when sharing with radv. While at it put the table properly in a C file so we don't have to deal with multiple definitions, and the struct definition isn't in generated source. Reviewed-by: Marek Olšák <marek.olsak@amd.com> Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5291>
This commit is contained in:
parent
c98e52f88a
commit
b351a50763
6 changed files with 55 additions and 17 deletions
|
|
@ -78,7 +78,7 @@ GEN10_FORMAT_TABLE_DEP := \
|
|||
|
||||
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)
|
||||
|
|
|
|||
|
|
@ -69,7 +69,7 @@ AMD_DEBUG_FILES = \
|
|||
|
||||
AMD_GENERATED_FILES = \
|
||||
common/amdgfxregs.h \
|
||||
common/gfx10_format_table.h \
|
||||
common/gfx10_format_table.c \
|
||||
common/sid_tables.h
|
||||
|
||||
ACO_FILES = \
|
||||
|
|
|
|||
44
src/amd/common/gfx10_format_table.h
Normal file
44
src/amd/common/gfx10_format_table.h
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
/*
|
||||
* 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 */
|
||||
|
|
@ -105,11 +105,14 @@ HARDCODED = {
|
|||
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}),
|
||||
|
|
|
|||
|
|
@ -36,13 +36,13 @@ amdgfxregs_h = custom_target(
|
|||
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']
|
||||
|
|
@ -68,7 +68,7 @@ amd_common_files = files(
|
|||
|
||||
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,
|
||||
],
|
||||
|
|
|
|||
|
|
@ -33,16 +33,7 @@
|
|||
#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)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue