Missing SWI in VCHIQ
Lee Noar (2750) 16 posts |
Hello all, Could I make a request to add SWI “VCHIQ_BulkQueueReceive” to the These changes should do the trick (hopefully this appears correctly): --- Export/APCS-32/Lib/CLib/h/swis.orig 2016-06-12 20:24:06.000000000 +0100 +++ Export/APCS-32/Lib/CLib/h/swis 2016-06-13 19:41:16.173995720 +0100 @@ -1739,6 +1739,8 @@ #define VCHIQ_ServiceUse 0x0005920D #undef VCHIQ_ServiceRelease #define VCHIQ_ServiceRelease 0x0005920E +#undef VCHIQ_BulkQueueReceive +#define VCHIQ_BulkQueueReceive 0x0005920F #undef Wimp_Initialise #define Wimp_Initialise 0x000400C0 #undef Wimp_CreateWindow --- mixed/RiscOS/Sources/HWSupport/VCHIQ/c/swis.orig 2016-06-13 18:55:38.000000000 +0100 +++ mixed/RiscOS/Sources/HWSupport/VCHIQ/c/swis 2016-06-13 19:12:05.641945518 +0100 @@ -186,6 +186,16 @@ ); break; + case VCHIQ_BulkQueueReceive-VCHIQ_00: + status = vchi_bulk_queue_receive( + (VCHI_SERVICE_HANDLE_T) r->r[0], /* handle */ + (void *) r->r[1], /* data_dst */ + r->r[2], /* data_size */ + (VCHI_FLAGS_T) r->r[3], /* flags */ + (void *) r->r[4] /* bulk_handle */ + ); + break; + default: return error_BAD_SWI; } --- mixed/RiscOS/Sources/HWSupport/VCHIQ/hdr/VCHIQ.orig 2013-03-03 21:23:03.000000000 +0000 +++ mixed/RiscOS/Sources/HWSupport/VCHIQ/hdr/VCHIQ 2016-06-13 19:02:44.057929413 +0100 @@ -49,6 +49,7 @@ AddSWI ServiceDestroy AddSWI ServiceUse AddSWI ServiceRelease + AddSWI BulkQueueReceive ; Flags for BulkQueueTransmit, MsgDequeue, MsgQueue, MsgQueueV, MsgPeek SWIs VCHI_FLAGS_BLOCK_UNTIL_OP_COMPLETE * &01 --- mixed/RiscOS/Sources/HWSupport/VCHIQ/cmhg/VCHIQHdr.orig 2015-08-08 10:30:59.000000000 +0100 +++ mixed/RiscOS/Sources/HWSupport/VCHIQ/cmhg/VCHIQHdr 2016-06-13 18:56:56.097919434 +0100 @@ -59,4 +59,5 @@ ServiceCreate, ServiceDestroy, ServiceUse, - ServiceRelease + ServiceRelease, + BulkQueueReceive I’ve tried these changes myself and glReadPixels does return something useful, Thanks, |
Jeffrey Lee (213) 6048 posts |
Done. Let me know if there’s anything else you need!
Hmm, possibly the naive vchiq_prepare_bulk_data implementation? |
Lee Noar (2750) 16 posts |
Thanks!
Possibly, but transmits work perfectly (and I assume use the same code). This is what I’m seeing: It is reading all the pixels, just not quite in the right order! |