mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-22 07:00:12 +01:00
hasvk/tests: Link a single hasvk_tests binary using gtest
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24355>
This commit is contained in:
parent
66d3b4a8b2
commit
27a66f70a5
8 changed files with 67 additions and 34 deletions
|
|
@ -236,26 +236,34 @@ if with_tests
|
||||||
gnu_symbol_visibility : 'hidden',
|
gnu_symbol_visibility : 'hidden',
|
||||||
)
|
)
|
||||||
|
|
||||||
foreach t : ['block_pool_no_free', 'block_pool_grow_first',
|
files_hasvk_tests = files(
|
||||||
'state_pool_no_free', 'state_pool_free_list_only',
|
'tests/hasvk_tests.cpp',
|
||||||
'state_pool', 'state_pool_padding']
|
|
||||||
|
'tests/state_pool.c',
|
||||||
|
'tests/state_pool_free_list_only.c',
|
||||||
|
'tests/state_pool_no_free.c',
|
||||||
|
'tests/state_pool_padding.c',
|
||||||
|
'tests/block_pool_no_free.c',
|
||||||
|
'tests/block_pool_grow_first.c',
|
||||||
|
)
|
||||||
|
|
||||||
test(
|
test(
|
||||||
'anv_hasvk_@0@'.format(t),
|
'hasvk_tests',
|
||||||
executable(
|
executable(
|
||||||
t,
|
'hasvk_tests',
|
||||||
['tests/@0@.c'.format(t), anv_hasvk_entrypoints[0]],
|
[files_hasvk_tests, anv_hasvk_entrypoints[0]],
|
||||||
c_args : [ sse2_args ],
|
c_args : [ sse2_args ],
|
||||||
link_with : libvulkan_intel_hasvk_test,
|
link_with : libvulkan_intel_hasvk_test,
|
||||||
dependencies : [
|
dependencies : [
|
||||||
dep_libdrm, dep_thread, dep_m, dep_valgrind,
|
idep_gtest, dep_libdrm, dep_thread, dep_m, dep_valgrind,
|
||||||
idep_vulkan_util, idep_vulkan_wsi_headers,
|
idep_vulkan_util, idep_vulkan_wsi_headers,
|
||||||
idep_vulkan_runtime, idep_intel_driver_ds,
|
idep_vulkan_runtime, idep_intel_driver_ds, idep_intel_dev,
|
||||||
],
|
],
|
||||||
include_directories : [
|
include_directories : [
|
||||||
inc_include, inc_src, inc_intel, inc_compiler,
|
inc_include, inc_src, inc_intel, inc_compiler,
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
suite : ['intel'],
|
suite : ['intel'],
|
||||||
|
protocol : 'gtest',
|
||||||
)
|
)
|
||||||
endforeach
|
|
||||||
endif
|
endif
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,9 @@
|
||||||
#include "anv_private.h"
|
#include "anv_private.h"
|
||||||
#include "test_common.h"
|
#include "test_common.h"
|
||||||
|
|
||||||
int main(void)
|
void block_pool_grow_first_test(void);
|
||||||
|
|
||||||
|
void block_pool_grow_first_test(void)
|
||||||
{
|
{
|
||||||
struct anv_physical_device physical_device = {
|
struct anv_physical_device physical_device = {
|
||||||
.use_softpin = true,
|
.use_softpin = true,
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@
|
||||||
#define BLOCKS_PER_THREAD 1024
|
#define BLOCKS_PER_THREAD 1024
|
||||||
#define NUM_RUNS 64
|
#define NUM_RUNS 64
|
||||||
|
|
||||||
struct job {
|
static struct job {
|
||||||
pthread_t thread;
|
pthread_t thread;
|
||||||
unsigned id;
|
unsigned id;
|
||||||
struct anv_block_pool *pool;
|
struct anv_block_pool *pool;
|
||||||
|
|
@ -146,7 +146,9 @@ static void run_test()
|
||||||
pthread_mutex_destroy(&device.mutex);
|
pthread_mutex_destroy(&device.mutex);
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(void)
|
void block_pool_no_free_test(void);
|
||||||
|
|
||||||
|
void block_pool_no_free_test(void)
|
||||||
{
|
{
|
||||||
for (unsigned i = 0; i < NUM_RUNS; i++)
|
for (unsigned i = 0; i < NUM_RUNS; i++)
|
||||||
run_test();
|
run_test();
|
||||||
|
|
|
||||||
16
src/intel/vulkan_hasvk/tests/hasvk_tests.cpp
Normal file
16
src/intel/vulkan_hasvk/tests/hasvk_tests.cpp
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
/*
|
||||||
|
* Copyright © 2023 Intel Corporation
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <gtest/gtest.h>
|
||||||
|
|
||||||
|
#define HASVK_C_TEST(S, N, C) extern "C" void C(void); TEST(S, N) { C(); }
|
||||||
|
|
||||||
|
HASVK_C_TEST(StatePool, Regular, state_pool_test);
|
||||||
|
HASVK_C_TEST(StatePool, FreeListOnly, state_pool_free_list_only_test);
|
||||||
|
HASVK_C_TEST(StatePool, NoFree, state_pool_no_free_test);
|
||||||
|
HASVK_C_TEST(StatePool, Padding, state_pool_padding_test);
|
||||||
|
|
||||||
|
HASVK_C_TEST(BlockPool, NoFree, block_pool_no_free_test);
|
||||||
|
HASVK_C_TEST(BlockPool, GrowFirst, block_pool_grow_first_test);
|
||||||
|
|
@ -28,7 +28,9 @@
|
||||||
|
|
||||||
#include "state_pool_test_helper.h"
|
#include "state_pool_test_helper.h"
|
||||||
|
|
||||||
int main(void)
|
void state_pool_test(void);
|
||||||
|
|
||||||
|
void state_pool_test(void)
|
||||||
{
|
{
|
||||||
const unsigned num_threads = 8;
|
const unsigned num_threads = 8;
|
||||||
const unsigned states_per_thread = 1 << 10;
|
const unsigned states_per_thread = 1 << 10;
|
||||||
|
|
|
||||||
|
|
@ -26,12 +26,11 @@
|
||||||
#include "anv_private.h"
|
#include "anv_private.h"
|
||||||
#include "test_common.h"
|
#include "test_common.h"
|
||||||
|
|
||||||
#define STATES_PER_THREAD_LOG2 12
|
|
||||||
#define STATES_PER_THREAD (1 << STATES_PER_THREAD_LOG2)
|
|
||||||
|
|
||||||
#include "state_pool_test_helper.h"
|
#include "state_pool_test_helper.h"
|
||||||
|
|
||||||
int main(void)
|
void state_pool_free_list_only_test(void);
|
||||||
|
|
||||||
|
void state_pool_free_list_only_test(void)
|
||||||
{
|
{
|
||||||
const unsigned num_threads = 8;
|
const unsigned num_threads = 8;
|
||||||
const unsigned states_per_thread = 1 << 12;
|
const unsigned states_per_thread = 1 << 12;
|
||||||
|
|
|
||||||
|
|
@ -30,14 +30,14 @@
|
||||||
#define STATES_PER_THREAD 1024
|
#define STATES_PER_THREAD 1024
|
||||||
#define NUM_RUNS 64
|
#define NUM_RUNS 64
|
||||||
|
|
||||||
struct job {
|
static struct job {
|
||||||
pthread_t thread;
|
pthread_t thread;
|
||||||
unsigned id;
|
unsigned id;
|
||||||
struct anv_state_pool *pool;
|
struct anv_state_pool *pool;
|
||||||
uint32_t offsets[STATES_PER_THREAD];
|
uint32_t offsets[STATES_PER_THREAD];
|
||||||
} jobs[NUM_THREADS];
|
} jobs[NUM_THREADS];
|
||||||
|
|
||||||
pthread_barrier_t barrier;
|
static pthread_barrier_t barrier;
|
||||||
|
|
||||||
static void *alloc_states(void *_job)
|
static void *alloc_states(void *_job)
|
||||||
{
|
{
|
||||||
|
|
@ -112,7 +112,9 @@ static void run_test()
|
||||||
pthread_mutex_destroy(&device.mutex);
|
pthread_mutex_destroy(&device.mutex);
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(void)
|
void state_pool_no_free_test(void);
|
||||||
|
|
||||||
|
void state_pool_no_free_test(void)
|
||||||
{
|
{
|
||||||
for (unsigned i = 0; i < NUM_RUNS; i++)
|
for (unsigned i = 0; i < NUM_RUNS; i++)
|
||||||
run_test();
|
run_test();
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,9 @@
|
||||||
#include "anv_private.h"
|
#include "anv_private.h"
|
||||||
#include "test_common.h"
|
#include "test_common.h"
|
||||||
|
|
||||||
int main(void)
|
void state_pool_padding_test(void);
|
||||||
|
|
||||||
|
void state_pool_padding_test(void)
|
||||||
{
|
{
|
||||||
struct anv_physical_device physical_device = {
|
struct anv_physical_device physical_device = {
|
||||||
.use_softpin = true,
|
.use_softpin = true,
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue