sync code with last improvements from OpenBSD
This commit is contained in:
commit
88965415ff
26235 changed files with 29195616 additions and 0 deletions
153
lib/libdrm/tests/amdgpu/shader_code.h
Normal file
153
lib/libdrm/tests/amdgpu/shader_code.h
Normal file
|
@ -0,0 +1,153 @@
|
|||
/*
|
||||
* Copyright 2022 Advanced Micro Devices, Inc.
|
||||
*
|
||||
* 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 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 COPYRIGHT HOLDER(S) OR AUTHOR(S) 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.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _shader_code_h_
|
||||
#define _shader_code_h_
|
||||
|
||||
#ifndef ARRAY_SIZE
|
||||
#define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))
|
||||
#endif
|
||||
|
||||
enum amdgpu_test_gfx_version {
|
||||
AMDGPU_TEST_GFX_V9 = 0,
|
||||
AMDGPU_TEST_GFX_V10,
|
||||
AMDGPU_TEST_GFX_V11,
|
||||
AMDGPU_TEST_GFX_MAX,
|
||||
};
|
||||
|
||||
enum cs_type {
|
||||
CS_BUFFERCLEAR = 0,
|
||||
CS_BUFFERCOPY,
|
||||
CS_HANG,
|
||||
CS_HANG_SLOW,
|
||||
};
|
||||
|
||||
enum ps_type {
|
||||
PS_CONST,
|
||||
PS_TEX,
|
||||
PS_HANG,
|
||||
PS_HANG_SLOW
|
||||
};
|
||||
|
||||
enum vs_type {
|
||||
VS_RECTPOSTEXFAST,
|
||||
};
|
||||
|
||||
struct reg_info {
|
||||
uint32_t reg_offset; ///< Memory mapped register offset
|
||||
uint32_t reg_value; ///< register value
|
||||
};
|
||||
|
||||
#include "shader_code_hang.h"
|
||||
#include "shader_code_gfx9.h"
|
||||
#include "shader_code_gfx10.h"
|
||||
#include "shader_code_gfx11.h"
|
||||
|
||||
struct shader_test_cs_shader {
|
||||
const uint32_t *shader;
|
||||
uint32_t shader_size;
|
||||
const struct reg_info *sh_reg;
|
||||
uint32_t num_sh_reg;
|
||||
const struct reg_info *context_reg;
|
||||
uint32_t num_context_reg;
|
||||
};
|
||||
|
||||
struct shader_test_ps_shader {
|
||||
const uint32_t *shader;
|
||||
unsigned shader_size;
|
||||
const uint32_t patchinfo_code_size;
|
||||
const uint32_t *patchinfo_code;
|
||||
const uint32_t *patchinfo_code_offset;
|
||||
const struct reg_info *sh_reg;
|
||||
const uint32_t num_sh_reg;
|
||||
const struct reg_info *context_reg;
|
||||
const uint32_t num_context_reg;
|
||||
};
|
||||
|
||||
struct shader_test_vs_shader {
|
||||
const uint32_t *shader;
|
||||
uint32_t shader_size;
|
||||
const struct reg_info *sh_reg;
|
||||
uint32_t num_sh_reg;
|
||||
const struct reg_info *context_reg;
|
||||
uint32_t num_context_reg;
|
||||
};
|
||||
|
||||
static const struct shader_test_cs_shader shader_test_cs[AMDGPU_TEST_GFX_MAX][2] = {
|
||||
// gfx9, cs_bufferclear
|
||||
{{bufferclear_cs_shader_gfx9, sizeof(bufferclear_cs_shader_gfx9), bufferclear_cs_shader_registers_gfx9, ARRAY_SIZE(bufferclear_cs_shader_registers_gfx9)},
|
||||
// gfx9, cs_buffercopy
|
||||
{buffercopy_cs_shader_gfx9, sizeof(buffercopy_cs_shader_gfx9), bufferclear_cs_shader_registers_gfx9, ARRAY_SIZE(bufferclear_cs_shader_registers_gfx9)}},
|
||||
// gfx10, cs_bufferclear
|
||||
{{bufferclear_cs_shader_gfx10, sizeof(bufferclear_cs_shader_gfx10), bufferclear_cs_shader_registers_gfx9, ARRAY_SIZE(bufferclear_cs_shader_registers_gfx9)},
|
||||
// gfx10, cs_buffercopy
|
||||
{buffercopy_cs_shader_gfx10, sizeof(bufferclear_cs_shader_gfx10), bufferclear_cs_shader_registers_gfx9, ARRAY_SIZE(bufferclear_cs_shader_registers_gfx9)}},
|
||||
// gfx11, cs_bufferclear
|
||||
{{bufferclear_cs_shader_gfx11, sizeof(bufferclear_cs_shader_gfx11), bufferclear_cs_shader_registers_gfx11, ARRAY_SIZE(bufferclear_cs_shader_registers_gfx11)},
|
||||
// gfx11, cs_buffercopy
|
||||
{buffercopy_cs_shader_gfx11, sizeof(bufferclear_cs_shader_gfx11), bufferclear_cs_shader_registers_gfx11, ARRAY_SIZE(bufferclear_cs_shader_registers_gfx11)}},
|
||||
};
|
||||
|
||||
#define SHADER_PS_INFO(_ps, _n) \
|
||||
{ps_##_ps##_shader_gfx##_n, sizeof(ps_##_ps##_shader_gfx##_n), \
|
||||
ps_##_ps##_shader_patchinfo_code_size_gfx##_n, \
|
||||
ps_##_ps##_shader_patchinfo_code_gfx##_n, \
|
||||
ps_##_ps##_shader_patchinfo_offset_gfx##_n, \
|
||||
ps_##_ps##_sh_registers_gfx##_n, ps_##_ps##_num_sh_registers_gfx##_n, \
|
||||
ps_##_ps##_context_registers_gfx##_n, ps_##_ps##_num_context_registers_gfx##_n}
|
||||
static const struct shader_test_ps_shader shader_test_ps[AMDGPU_TEST_GFX_MAX][2] = {
|
||||
{SHADER_PS_INFO(const, 9), SHADER_PS_INFO(tex, 9)},
|
||||
{SHADER_PS_INFO(const, 10), SHADER_PS_INFO(tex, 10)},
|
||||
{SHADER_PS_INFO(const, 11), SHADER_PS_INFO(tex, 11)},
|
||||
};
|
||||
|
||||
#define SHADER_VS_INFO(_vs, _n) \
|
||||
{vs_##_vs##_shader_gfx##_n, sizeof(vs_##_vs##_shader_gfx##_n), \
|
||||
vs_##_vs##_sh_registers_gfx##_n, vs_##_vs##_num_sh_registers_gfx##_n, \
|
||||
vs_##_vs##_context_registers_gfx##_n, vs_##_vs##_num_context_registers_gfx##_n}
|
||||
static const struct shader_test_vs_shader shader_test_vs[AMDGPU_TEST_GFX_MAX][1] = {
|
||||
{SHADER_VS_INFO(RectPosTexFast, 9)},
|
||||
{SHADER_VS_INFO(RectPosTexFast, 10)},
|
||||
{SHADER_VS_INFO(RectPosTexFast, 11)},
|
||||
};
|
||||
|
||||
struct shader_test_gfx_info {
|
||||
const uint32_t *preamble_cache;
|
||||
uint32_t size_preamble_cache;
|
||||
const uint32_t *cached_cmd;
|
||||
uint32_t size_cached_cmd;
|
||||
uint32_t sh_reg_base;
|
||||
uint32_t context_reg_base;
|
||||
};
|
||||
|
||||
#define SHADER_TEST_GFX_INFO(_n) \
|
||||
preamblecache_gfx##_n, sizeof(preamblecache_gfx##_n), \
|
||||
cached_cmd_gfx##_n, sizeof(cached_cmd_gfx##_n), \
|
||||
sh_reg_base_gfx##_n, context_reg_base_gfx##_n
|
||||
|
||||
static struct shader_test_gfx_info shader_test_gfx_info[AMDGPU_TEST_GFX_MAX] = {
|
||||
{SHADER_TEST_GFX_INFO(9),},
|
||||
{SHADER_TEST_GFX_INFO(10),},
|
||||
{SHADER_TEST_GFX_INFO(11),},
|
||||
};
|
||||
#endif
|
Loading…
Add table
Add a link
Reference in a new issue