Hi Lucas, 2015-09-28 12:39 GMT+02:00 Lucas Stach <l.stach@xxxxxxxxxxxxxx>: > 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@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@cubox:~/libdrm$ md5sum /tmp/etna.bmp 052880d433e1bf495e268206addd4087 /tmp/etna.bmp debian@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@cubox:~/libdrm$ md5sum /tmp/etna.bmp f1a02a52d81c0b79b098877e6b7d9303 /tmp/etna.bmp debian@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@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 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel