De acuerdo con la especificación opengl 4.0, glDrawPixels está en desuso.Cómo renderizar/dibujar objeto de búfer en framebuffer sin glDrawPixels
Para la interoperabilidad de cuda, parece mejor usar "objetos de búfer abiertos". (Una alternativa podría ser texturas o superficies, pero estas tienen problemas de caché/concurrencia y, por lo tanto, no se pueden usar para mi kernel de cuda).
Simplemente quiero crear un kernel cuda que use este objeto buffer mapeado mapeado y lo use como una "matriz de píxeles" o una pieza de memoria que contenga píxeles, más tarde el buffer no se mapeará.
Entonces quiero que el programa opengl dibuje el objeto de memoria intermedia en el framebuffer. Me gustaría usar una API abierta que no está en desuso.
¿Qué otras formas/apis hay para dibujar un objeto de memoria intermedia en el búfer de cuadros? (Además, los búferes de representación no se pueden utilizar, ya que probablemente tengan el mismo problema que los arreglos de cuda/problemas de almacenamiento en caché, por lo que esto excluye el objeto/extensión framebuffer?!?).
¿Hay una falta/falta funcionalidad en OpenGL 4.0 ahora que glDrawPixels está en desuso? ¿O hay una alternativa?
Yo no bajo estar. Su primer punto indica que los objetos de búfer de OpenGL se recomiendan para interoperabilidad CUDA/OpenCL-OpenGL (y lo son). ¿Estás buscando otras alternativas o hay algún problema con esa avenida? – Ani
El manual de cuda menciona tres soluciones para la interoperabilidad de gráficos cuda con opengl: objetos de búfer, texturas y búferes de representación. El manual más adelante menciona texturas y los búferes de render tienen problemas de almacenamiento en caché con la lectura/escritura de varios hilos. Por lo tanto, llego a la conclusión de que la única opción que queda es "objetos de memoria intermedia". La pregunta ahora es cómo "mostrar un objeto de memoria intermedia con OpenGL"? –