[PATCH 00/48] Etnaviv changes RFCv1->RFCv2
Christian Gmeiner
christian.gmeiner at gmail.com
Wed Sep 30 00:53:31 PDT 2015
Hi Lucas,
2015-09-28 12:39 GMT+02:00 Lucas Stach <l.stach at pengutronix.de>:
> Hi Christian,
>
> Am Montag, den 28.09.2015, 11:46 +0200 schrieb Christian Gmeiner:
>> Hi Lucas.
>>
>> I think I have run into a cache flush / cache coherency issue. I will
>> try to reproduce this issue with a small example and will
>> keep you updated.
>
> What are the symptoms of the issue you are hitting? Maybe I can
> reproduce or see if I have an idea right away.
>
With the help of the etnaviv_2d_test in my libdrm repo on github I was able
to test different bo flags.
ETNA_BO_UNCACHED and ETNA_BO_CACHED are working as expected.
The rendering result looks as expected. If I try ETNA_BO_WC the rendering
result looks different for every run.
debian at cubox:~/libdrm$ tests/etnaviv/etnaviv_2d_test /dev/dri/card1
Version: 1.0.0
Name: etnaviv
Date: 20150910
Description: etnaviv DRM
bo cpu prep: 0
debian at cubox:~/libdrm$ md5sum /tmp/etna.bmp
052880d433e1bf495e268206addd4087 /tmp/etna.bmp
debian at cubox:~/libdrm$ tests/etnaviv/etnaviv_2d_test /dev/dri/card1
Version: 1.0.0
Name: etnaviv
Date: 20150910
Description: etnaviv DRM
bo cpu prep: 0
debian at cubox:~/libdrm$ md5sum /tmp/etna.bmp
f1a02a52d81c0b79b098877e6b7d9303 /tmp/etna.bmp
debian at cubox:~/libdrm$ tests/etnaviv/etnaviv_2d_test /dev/dri/card1
Version: 1.0.0
Name: etnaviv
Date: 20150910
Description: etnaviv DRM
bo cpu prep: 0
debian at cubox:~/libdrm$ md5sum /tmp/etna.bmp
de5a428eb1f6567849ef40a944a995b8 /tmp/etna.bmp
etna_cmd_stream_finish() waits until the submitted command stream was
processed by the GPU. I tried to use etna_bo_cpu_prep(..) but I that did not
help.
I am doing something wrong? Should this work in theory?
diff --git a/tests/etnaviv/etnaviv_2d_test.c b/tests/etnaviv/etnaviv_2d_test.c
index e1ee8a8..037da5b 100644
--- a/tests/etnaviv/etnaviv_2d_test.c
+++ b/tests/etnaviv/etnaviv_2d_test.c
@@ -200,7 +200,7 @@ int main(int argc, char *argv[])
goto fail;
}
- bmp = etna_bo_new(dev, bmp_size, ETNA_BO_UNCACHED);
+ bmp = etna_bo_new(dev, bmp_size, ETNA_BO_WC);
if (!bmp) {
ret = 5;
goto fail;
@@ -218,8 +218,10 @@ int main(int argc, char *argv[])
etna_cmd_stream_finish(stream);
+ int state = etna_bo_cpu_prep(bmp, DRM_ETNA_PREP_READ);
+ printf("bo cpu prep: %d\n", state);
bmp_dump32(etna_bo_map(bmp), width, height, false, "/tmp/etna.bmp");
-
+ etna_bo_cpu_fini(bmp);
fail:
if (stream)
etna_cmd_stream_del(stream);
Greets
--
Christian Gmeiner, MSc
https://soundcloud.com/christian-gmeiner
More information about the dri-devel
mailing list