[PATCH libdrm 2/3] tests/etnaviv_2d_test: pick the 2D core
Lubomir Rintel
lkundrak at v3.sk
Tue Dec 1 20:38:28 UTC 2020
Run the test on a core capable of 2D rendering instead of hardcoding to
core zero.
Signed-off-by: Lubomir Rintel <lkundrak at v3.sk>
---
tests/etnaviv/etnaviv_2d_test.c | 31 ++++++++++++++++++++++++-------
1 file changed, 24 insertions(+), 7 deletions(-)
diff --git a/tests/etnaviv/etnaviv_2d_test.c b/tests/etnaviv/etnaviv_2d_test.c
index eb9dfa59..a75a4a89 100644
--- a/tests/etnaviv/etnaviv_2d_test.c
+++ b/tests/etnaviv/etnaviv_2d_test.c
@@ -161,6 +161,8 @@ int main(int argc, char *argv[])
drmVersionPtr version;
int fd, ret = 0;
+ uint64_t feat;
+ int core = 0;
if (argc < 2) {
fprintf(stderr, "Usage: %s /dev/dri/<device>\n", argv[0]);
@@ -190,13 +192,28 @@ int main(int argc, char *argv[])
goto out;
}
- /* TODO: we assume that core 0 is a 2D capable one */
- gpu = etna_gpu_new(dev, 0);
- if (!gpu) {
- perror("etna_gpu_new");
- ret = 3;
- goto out_device;
- }
+ do {
+ gpu = etna_gpu_new(dev, core);
+ if (!gpu) {
+ perror("etna_gpu_new");
+ ret = 3;
+ goto out_device;
+ }
+
+ if (etna_gpu_get_param(gpu, ETNA_GPU_FEATURES_0, &feat)) {
+ perror("etna_gpu_get_param");
+ ret = 4;
+ goto out_device;
+ }
+
+ if ((feat & (1 << 9)) == 0) {
+ /* GPU not 2D capable. */
+ etna_gpu_del(gpu);
+ gpu = NULL;
+ }
+
+ core++;
+ } while (!gpu);
pipe = etna_pipe_new(gpu, ETNA_PIPE_2D);
if (!pipe) {
--
2.28.0
More information about the etnaviv
mailing list