Ну, есть бесчисленное множество причин, почему это не сработает.
Во-первых, «диапазон выделенной памяти контекста OpenGL» всегда изменяется . Контексты OpenGL выделяют новую память и освобождают ее по своему усмотрению.
Во-вторых, я бы не стал доверять драйверу OpenGL для выживания в таких условиях отображения памяти. Несколько контекстов OpenGL могут сосуществовать, но только потому, что они все знают друг о друге, и поэтому драйвер может их компенсировать. Маловероятно, что контекст может ассимилировать изменения, сделанные другим контекстом.
В-третьих, графические процессоры часто работают с графической памятью. Даже если вы можете использовать mmap
для памяти графического процессора (что само по себе маловероятно), вы, вероятно, потеряете много производительности, когда это произойдет. И память GPU тасуется намного больше, чем память CPU.
Вы, похоже, пытаетесь сделать графику на основе IPC. Лучше всего, чтобы графическая система представляла собой собственный процесс, с которым вы общаетесь с помощью методов IPC, а не пыталась общаться с OpenGL через IPC.