shithub: libgraphics

Download patch

ref: beca6100b73428b4b72973275d2989a4c6581f51
parent: 4e3927d643a352bb65665cfbb5547355aa1aaa82
author: rodri <rgl@antares-labs.eu>
date: Tue Sep 17 11:32:32 EDT 2024

a better turbopool.

--- a/fb.c
+++ b/fb.c
@@ -212,6 +212,7 @@
 //	Rectangle dr;
 //	uchar *src;
 //	ulong len;
+//	Channel *done;	/* task completion signal */
 //};
 //static void
 //ldimgtask(void *arg)
@@ -220,6 +221,7 @@
 //
 //	t = arg;
 //	loadimage(t->dst, t->dr, t->src, t->len);
+//	nbsend(t->done, nil);
 //}
 
 static void
@@ -306,9 +308,10 @@
 //				tasks[i].dr.max.y = dr.max.y;
 //				tasks[i].len = len - i*stride;
 //			}
-//			procpoolexec(turbodrawingpool, ldimgtask, &tasks[i]);
+//			turbopoolexec(turbodrawingpool, ldimgtask, &tasks[i]);
 //		}
-//		procpoolwait(turbodrawingpool);
+//		for(i = 0; i < turbodrawingpool->nprocs; i++)
+//			recvp(tasks[i].done);
 //		free(tasks);
 
 		tmp = allocimage(display, sr, RGBA32, 0, DNofill);
--- a/internal.h
+++ b/internal.h
@@ -39,26 +39,22 @@
 	Primitive p;
 };
 
-typedef struct Proctask Proctask;
-typedef struct Procpool Procpool;
+typedef struct Turbotask Turbotask;
+typedef struct Turbopool Turbopool;
 
-struct Proctask
+struct Turbotask
 {
 	void (*fn)(void*);
 	void *arg;
 };
 
-struct Procpool
+struct Turbopool
 {
 	ulong nprocs;
-	Ref issued;
-	Ref complete;
-
 	Channel *subq;	/* task submission queue */
-	Channel *done;	/* task completion signal */
 };
 
-extern Procpool *turbodrawingpool;
+extern Turbopool *turbopool;
 
 /* alloc */
 void *emalloc(ulong);
@@ -100,11 +96,10 @@
 /* nanosec */
 uvlong nanosec(void);
 
-/* procpool */
-Procpool *mkprocpool(ulong);
-void procpoolexec(Procpool*, void(*)(void*), void*);
-void procpoolwait(Procpool*);
-void rmprocpool(Procpool*);
+/* turbopool */
+Turbopool *mkturbopool(ulong);
+void turbopoolexec(Turbopool*, void(*)(void*), void*);
+void rmturbopool(Turbopool*);
 
 #define getpixel(fb, p)		rastergetcolor(fb, p)
 #define putpixel(fb, p, c)	rasterputcolor(fb, p, c)
--- a/mkfile
+++ b/mkfile
@@ -17,7 +17,7 @@
 	color.$O\
 	util.$O\
 	nanosec.$O\
-	procpool.$O\
+	turbopool.$O\
 
 HFILES=\
 	graphics.h\
--- a/render.c
+++ b/render.c
@@ -9,7 +9,7 @@
 #include "internal.h"
 
 Rectangle UR = {0,0,1,1};
-//Procpool *turbodrawingpool;
+//Turbopool *turbopool;
 
 static Vertexattr *
 sparams_getuniform(Shaderparams *sp, char *id)
@@ -732,7 +732,7 @@
 		nproc = 1;
 	free(nprocs);
 
-//	turbodrawingpool = mkprocpool(nproc);
+//	turbopool = mkturbopool(nproc);
 
 	r = emalloc(sizeof *r);
 	memset(r, 0, sizeof *r);