Aux_rgba not detected?

I’m trying to set up a render to texture using the auxiliary bitplane, however Panda3D does not seem to be able to create the offscreen buffer. Sadly, I don’t get any error message, makeOutput() just returns None (See at the end of the post for a short example)

The debug output of the graphic card capabilities does not show any mode that has aux buffers available, however aux buffer support is present in glxinfo :

:task(debug): AsyncTaskManager TaskManager task chain loader; 0 tasks: set_num_threads(1)
:display:gsg:glgsg(debug): GL_VENDOR = NVIDIA Corporation
:display:gsg:glgsg(debug): GL_RENDERER = GeForce GTX 675MX/PCIe/SSE2
:display:gsg:glgsg(debug): GL_VERSION = 4.5.0 NVIDIA 384.130
:display:gsg:glgsg(debug): GL_VERSION decoded to: 4.5
:display:gsg:glgsg(debug): GLX_VENDOR (client) = NVIDIA Corporation
:display:gsg:glgsg(debug): GLX_VERSION (client) = 1.4
:display:gsg:glgsg(debug): GLX_VENDOR (server) = NVIDIA Corporation
:display:gsg:glgsg(debug): GLX_VERSION (server) = 1.4
:display:gsg:glgsg(debug): GLX_VERSION = 1.4
:display:gsg:glgsg(debug): HAS EXT GLX_SGI_swap_control 1
:display:gsg:glgsg(debug): HAS EXT GLX_ARB_create_context 1
:display:glxdisplay(debug): supports_swap_control = 1
:display:glxdisplay(debug): supports_fbconfig = 1
:display:glxdisplay(debug): supports_pbuffer = 1 sgix = 0
:display:glxdisplay(debug): 0:  quality=0 (pbuffer)
:display:glxdisplay(debug): 1:  quality=0 (pbuffer)
:display:glxdisplay(debug): 2:  quality=0 (pbuffer)
:display:glxdisplay(debug): 3:  quality=0 (pbuffer)
:display:glxdisplay(debug): 4:  quality=0 (pbuffer)
:display:glxdisplay(debug): 5:  quality=0 (pbuffer)
:display:glxdisplay(debug): 6:  quality=0 (pbuffer)
:display:glxdisplay(debug): 7:  quality=0 (pbuffer)
:display:glxdisplay(debug): 8:  quality=0 (pbuffer)
:display:glxdisplay(debug): 9:  quality=0 (pbuffer)
:display:glxdisplay(debug): 10:  quality=0 (pbuffer)
:display:glxdisplay(debug): 11:  quality=0 (pbuffer)
:display:glxdisplay(debug): 12:  quality=0 (pbuffer)
:display:glxdisplay(debug): 13:  quality=0 (pbuffer)
:display:glxdisplay(debug): 14:  quality=0 (pbuffer)
:display:glxdisplay(debug): 15:  quality=0 (pbuffer)
:display:glxdisplay(debug): 16:  quality=0 (pbuffer)
:display:glxdisplay(debug): 17: depth_bits=24 srgb_color color_bits=24 red_bits=8 green_bits=8 blue_bits=8 accum_bits=64 force_hardware force_software  quality=96900140 (pbuffer) (pixmap)
:display:glxdisplay(debug): 18: depth_bits=24 srgb_color color_bits=24 red_bits=8 green_bits=8 blue_bits=8 accum_bits=64 force_hardware force_software  quality=96900140 (pbuffer) (pixmap)
:display:glxdisplay(debug): 19: depth_bits=24 srgb_color color_bits=24 red_bits=8 green_bits=8 blue_bits=8 accum_bits=64 force_hardware force_software  quality=96900140 (pbuffer) (pixmap)
:display:glxdisplay(debug): 20: depth_bits=24 srgb_color color_bits=24 red_bits=8 green_bits=8 blue_bits=8 stencil_bits=8 accum_bits=64 force_hardware force_software  quality=96900090 (pbuffer) (pixmap)
:display:glxdisplay(debug): 21: depth_bits=24 srgb_color color_bits=24 red_bits=8 green_bits=8 blue_bits=8 stencil_bits=8 accum_bits=64 force_hardware force_software  quality=96900090 (pbuffer) (pixmap)
:display:glxdisplay(debug): 22: depth_bits=24 srgb_color color_bits=24 red_bits=8 green_bits=8 blue_bits=8 stencil_bits=8 accum_bits=64 force_hardware force_software  quality=96900090 (pbuffer) (pixmap)
:display:glxdisplay(debug): 23: srgb_color color_bits=24 red_bits=8 green_bits=8 blue_bits=8 accum_bits=64 force_hardware force_software  quality=95899948 (pbuffer) (pixmap)
:display:glxdisplay(debug): 24: srgb_color color_bits=24 red_bits=8 green_bits=8 blue_bits=8 accum_bits=64 force_hardware force_software  quality=95899948 (pbuffer) (pixmap)
:display:glxdisplay(debug): 25: srgb_color color_bits=24 red_bits=8 green_bits=8 blue_bits=8 accum_bits=64 force_hardware force_software  quality=95899948 (pbuffer) (pixmap)
:display:glxdisplay(debug): 26: depth_bits=24 srgb_color color_bits=24 red_bits=8 green_bits=8 blue_bits=8 accum_bits=64 back_buffers=1 force_hardware force_software  quality=97000140 (pbuffer) (pixmap)
:display:glxdisplay(debug): 27: depth_bits=24 srgb_color color_bits=24 red_bits=8 green_bits=8 blue_bits=8 accum_bits=64 back_buffers=1 force_hardware force_software  quality=97000140 (pbuffer) (pixmap)
:display:glxdisplay(debug): 28: depth_bits=24 srgb_color color_bits=24 red_bits=8 green_bits=8 blue_bits=8 accum_bits=64 back_buffers=1 force_hardware force_software  quality=97000140 (pbuffer) (pixmap)
:display:glxdisplay(debug): 29: depth_bits=24 srgb_color color_bits=24 red_bits=8 green_bits=8 blue_bits=8 stencil_bits=8 accum_bits=64 back_buffers=1 force_hardware force_software  quality=97000090 (pbuffer) (pixmap)
:display:glxdisplay(debug): 30: depth_bits=24 srgb_color color_bits=24 red_bits=8 green_bits=8 blue_bits=8 stencil_bits=8 accum_bits=64 back_buffers=1 force_hardware force_software  quality=97000090 (pbuffer) (pixmap)
:display:glxdisplay(debug): 31: depth_bits=24 srgb_color color_bits=24 red_bits=8 green_bits=8 blue_bits=8 stencil_bits=8 accum_bits=64 back_buffers=1 force_hardware force_software  quality=97000090 (pbuffer) (pixmap)
:display:glxdisplay(debug): 32: srgb_color color_bits=24 red_bits=8 green_bits=8 blue_bits=8 accum_bits=64 back_buffers=1 force_hardware force_software  quality=95999948 (pbuffer) (pixmap)
:display:glxdisplay(debug): 33: srgb_color color_bits=24 red_bits=8 green_bits=8 blue_bits=8 accum_bits=64 back_buffers=1 force_hardware force_software  quality=95999948 (pbuffer) (pixmap)
:display:glxdisplay(debug): 34: srgb_color color_bits=24 red_bits=8 green_bits=8 blue_bits=8 accum_bits=64 back_buffers=1 force_hardware force_software  quality=95999948 (pbuffer) (pixmap)
:display:glxdisplay(debug): 35:  quality=0 (pbuffer)
:display:glxdisplay(debug): 36:  quality=0 (pbuffer)
:display:glxdisplay(debug): 37: depth_bits=24 srgb_color color_bits=24 red_bits=8 green_bits=8 blue_bits=8 alpha_bits=8 accum_bits=64 force_hardware force_software  quality=97900148 (pbuffer) (pixmap)
:display:glxdisplay(debug): 38: depth_bits=24 srgb_color color_bits=24 red_bits=8 green_bits=8 blue_bits=8 alpha_bits=8 accum_bits=64 force_hardware force_software  quality=97900148 (pbuffer) (pixmap)
:display:glxdisplay(debug): 39: depth_bits=24 srgb_color color_bits=24 red_bits=8 green_bits=8 blue_bits=8 alpha_bits=8 accum_bits=64 force_hardware force_software  quality=97900148 (pbuffer) (pixmap)
:display:glxdisplay(debug): 40:  quality=0 (pbuffer)
:display:glxdisplay(debug): 41:  quality=0 (pbuffer)
:display:glxdisplay(debug): 42: depth_bits=24 srgb_color color_bits=24 red_bits=8 green_bits=8 blue_bits=8 alpha_bits=8 stencil_bits=8 accum_bits=64 force_hardware force_software  quality=97900098 (pbuffer) (pixmap)
:display:glxdisplay(debug): 43: depth_bits=24 srgb_color color_bits=24 red_bits=8 green_bits=8 blue_bits=8 alpha_bits=8 stencil_bits=8 accum_bits=64 force_hardware force_software  quality=97900098 (pbuffer) (pixmap)
:display:glxdisplay(debug): 44: depth_bits=24 srgb_color color_bits=24 red_bits=8 green_bits=8 blue_bits=8 alpha_bits=8 stencil_bits=8 accum_bits=64 force_hardware force_software  quality=97900098 (pbuffer) (pixmap)
:display:glxdisplay(debug): 45:  quality=0 (pbuffer)
:display:glxdisplay(debug): 46:  quality=0 (pbuffer)
:display:glxdisplay(debug): 47: srgb_color color_bits=24 red_bits=8 green_bits=8 blue_bits=8 alpha_bits=8 accum_bits=64 force_hardware force_software  quality=96899956 (pbuffer) (pixmap)
:display:glxdisplay(debug): 48: srgb_color color_bits=24 red_bits=8 green_bits=8 blue_bits=8 alpha_bits=8 accum_bits=64 force_hardware force_software  quality=96899956 (pbuffer) (pixmap)
:display:glxdisplay(debug): 49: srgb_color color_bits=24 red_bits=8 green_bits=8 blue_bits=8 alpha_bits=8 accum_bits=64 force_hardware force_software  quality=96899956 (pbuffer) (pixmap)
:display:glxdisplay(debug): 50:  quality=0 (pbuffer)
:display:glxdisplay(debug): 51:  quality=0 (pbuffer)
:display:glxdisplay(debug): 52: depth_bits=24 srgb_color color_bits=24 red_bits=8 green_bits=8 blue_bits=8 alpha_bits=8 accum_bits=64 back_buffers=1 force_hardware force_software  quality=98000148 (pbuffer) (pixmap)
:display:glxdisplay(debug): 53: depth_bits=24 srgb_color color_bits=24 red_bits=8 green_bits=8 blue_bits=8 alpha_bits=8 accum_bits=64 back_buffers=1 force_hardware force_software  quality=98000148 (pbuffer) (pixmap)
:display:glxdisplay(debug): 54: depth_bits=24 srgb_color color_bits=24 red_bits=8 green_bits=8 blue_bits=8 alpha_bits=8 accum_bits=64 back_buffers=1 force_hardware force_software  quality=98000148 (pbuffer) (pixmap)
:display:glxdisplay(debug): 55:  quality=0 (pbuffer)
:display:glxdisplay(debug): 56:  quality=0 (pbuffer)
:display:glxdisplay(debug): 57: depth_bits=24 srgb_color color_bits=24 red_bits=8 green_bits=8 blue_bits=8 alpha_bits=8 stencil_bits=8 accum_bits=64 back_buffers=1 force_hardware force_software  quality=98000098 (pbuffer) (pixmap)
:display:glxdisplay(debug): 58: depth_bits=24 srgb_color color_bits=24 red_bits=8 green_bits=8 blue_bits=8 alpha_bits=8 stencil_bits=8 accum_bits=64 back_buffers=1 force_hardware force_software  quality=98000098 (pbuffer) (pixmap)
:display:glxdisplay(debug): 59: depth_bits=24 srgb_color color_bits=24 red_bits=8 green_bits=8 blue_bits=8 alpha_bits=8 stencil_bits=8 accum_bits=64 back_buffers=1 force_hardware force_software  quality=98000098 (pbuffer) (pixmap)
:display:glxdisplay(debug): 60:  quality=0 (pbuffer)
:display:glxdisplay(debug): 61:  quality=0 (pbuffer)
:display:glxdisplay(debug): 62: srgb_color color_bits=24 red_bits=8 green_bits=8 blue_bits=8 alpha_bits=8 accum_bits=64 back_buffers=1 force_hardware force_software  quality=96999956 (pbuffer) (pixmap)
:display:glxdisplay(debug): 63: srgb_color color_bits=24 red_bits=8 green_bits=8 blue_bits=8 alpha_bits=8 accum_bits=64 back_buffers=1 force_hardware force_software  quality=96999956 (pbuffer) (pixmap)
:display:glxdisplay(debug): 64: srgb_color color_bits=24 red_bits=8 green_bits=8 blue_bits=8 alpha_bits=8 accum_bits=64 back_buffers=1 force_hardware force_software  quality=96999956 (pbuffer) (pixmap)

...

:display:glxdisplay(debug): 172: depth_bits=24 srgb_color color_bits=24 red_bits=8 green_bits=8 blue_bits=8 alpha_bits=8 stencil_bits=8 accum_bits=64 multisamples=8 back_buffers=1 force_hardware force_software  quality=98000098 (pbuffer)
:display:glxdisplay(debug): 173: depth_bits=24 srgb_color color_bits=24 red_bits=8 green_bits=8 blue_bits=8 alpha_bits=8 accum_bits=64 multisamples=16 back_buffers=1 force_hardware force_software  quality=98000148 (pbuffer)
:display:glxdisplay(debug): 174: depth_bits=24 srgb_color color_bits=24 red_bits=8 green_bits=8 blue_bits=8 alpha_bits=8 accum_bits=64 multisamples=16 back_buffers=1 force_hardware force_software  quality=98000148 (pbuffer)
:display:glxdisplay(debug): 175: depth_bits=24 srgb_color color_bits=24 red_bits=8 green_bits=8 blue_bits=8 alpha_bits=8 accum_bits=64 multisamples=16 back_buffers=1 force_hardware force_software  quality=98000148 (pbuffer)
:display:glxdisplay(debug): 176: depth_bits=24 srgb_color color_bits=24 red_bits=8 green_bits=8 blue_bits=8 alpha_bits=8 stencil_bits=8 accum_bits=64 multisamples=16 back_buffers=1 force_hardware force_software  quality=98000098 (pbuffer)
:display:glxdisplay(debug): 177: depth_bits=24 srgb_color color_bits=24 red_bits=8 green_bits=8 blue_bits=8 alpha_bits=8 stencil_bits=8 accum_bits=64 multisamples=16 back_buffers=1 force_hardware force_software  quality=98000098 (pbuffer)
:display:glxdisplay(debug): 178: depth_bits=24 srgb_color color_bits=24 red_bits=8 green_bits=8 blue_bits=8 alpha_bits=8 stencil_bits=8 accum_bits=64 multisamples=16 back_buffers=1 force_hardware force_software  quality=98000098 (pbuffer)
:display:glxdisplay(debug): Selected context 52: depth_bits=24 color_bits=24 red_bits=8 green_bits=8 blue_bits=8 alpha_bits=8 accum_bits=64 back_buffers=1 force_hardware force_software 
:display:glxdisplay(debug): context_has_pbuffer = 1, context_has_pixmap = 1
:display:x11display(debug): Raw mice not requested.
:display:gsg:glgsg(debug): GL_VENDOR = NVIDIA Corporation
:display:gsg:glgsg(debug): GL_RENDERER = GeForce GTX 675MX/PCIe/SSE2
:display:gsg:glgsg(debug): GL_VERSION = 4.5.0 NVIDIA 384.130
:display:gsg:glgsg(debug): GL_VERSION decoded to: 4.5
:display:gsg:glgsg(debug): GLX_VENDOR (client) = NVIDIA Corporation
:display:gsg:glgsg(debug): GLX_VERSION (client) = 1.4
:display:gsg:glgsg(debug): GLX_VENDOR (server) = NVIDIA Corporation
:display:gsg:glgsg(debug): GLX_VERSION (server) = 1.4
:display:gsg:glgsg(debug): GLX_VERSION = 1.4
:display:gsg:glgsg(debug): GL_SHADING_LANGUAGE_VERSION = 4.50 NVIDIA
:display:gsg:glgsg(debug): Detected GLSL version: 4.50
:display:gsg:glgsg(debug): HAS EXT GL_ARB_compatibility 1
:display:gsg:glgsg(debug): Using compatibility profile

glxinfo output:


311 GLXFBConfigs:
    visual  x   bf lv rg d st  colorbuffer  sr ax dp st accumbuffer  ms  cav
  id dep cl sp  sz l  ci b ro  r  g  b  a F gb bf th cl  r  g  b  a ns b eat
----------------------------------------------------------------------------
0x155 24 tc  0  24  0 r  y .   8  8  8  0 .  s  4 24  8 16 16 16 16  0 0 None
0x156 24 dc  0  24  0 r  y .   8  8  8  0 .  s  4 24  8 16 16 16 16  0 0 None
0x157 24 tc  0  32  0 r  y .   8  8  8  8 .  s  4 24  8 16 16 16 16  0 0 None
0x158 24 dc  0  32  0 r  y .   8  8  8  8 .  s  4 24  8 16 16 16 16  0 0 None
0x159 24 tc  0  24  0 r  . .   8  8  8  0 .  s  4 24  8 16 16 16 16  0 0 None
0x15a 24 dc  0  24  0 r  . .   8  8  8  0 .  s  4 24  8 16 16 16 16  0 0 None
0x15b 24 tc  0  32  0 r  . .   8  8  8  8 .  s  4 24  8 16 16 16 16  0 0 None
0x15c 24 dc  0  32  0 r  . .   8  8  8  8 .  s  4 24  8 16 16 16 16  0 0 None
0x15d 24 tc  0  24  0 r  y .   8  8  8  0 .  s  4 24  0 16 16 16 16  0 0 None
0x15e 24 dc  0  24  0 r  y .   8  8  8  0 .  s  4 24  0 16 16 16 16  0 0 None
0x15f 24 tc  0  32  0 r  y .   8  8  8  8 .  s  4 24  0 16 16 16 16  0 0 None
0x160 24 dc  0  32  0 r  y .   8  8  8  8 .  s  4 24  0 16 16 16 16  0 0 None
0x161 24 tc  0  24  0 r  . .   8  8  8  0 .  s  4 24  0 16 16 16 16  0 0 None
0x162 24 dc  0  24  0 r  . .   8  8  8  0 .  s  4 24  0 16 16 16 16  0 0 None
0x163 24 tc  0  32  0 r  . .   8  8  8  8 .  s  4 24  0 16 16 16 16  0 0 None
0x164 24 dc  0  32  0 r  . .   8  8  8  8 .  s  4 24  0 16 16 16 16  0 0 None
0x165 24 tc  0  24  0 r  y .   8  8  8  0 .  s  4  0  0 16 16 16 16  0 0 None
0x166 24 dc  0  24  0 r  y .   8  8  8  0 .  s  4  0  0 16 16 16 16  0 0 None
0x167 24 tc  0  32  0 r  y .   8  8  8  8 .  s  4  0  0 16 16 16 16  0 0 None
0x168 24 dc  0  32  0 r  y .   8  8  8  8 .  s  4  0  0 16 16 16 16  0 0 None
0x169 24 tc  0  24  0 r  . .   8  8  8  0 .  s  4  0  0 16 16 16 16  0 0 None
0x16a 24 dc  0  24  0 r  . .   8  8  8  0 .  s  4  0  0 16 16 16 16  0 0 None
0x16b 24 tc  0  32  0 r  . .   8  8  8  8 .  s  4  0  0 16 16 16 16  0 0 None
0x16c 24 dc  0  32  0 r  . .   8  8  8  8 .  s  4  0  0 16 16 16 16  0 0 None
0x16d 24 tc  0  24  0 r  y .   8  8  8  0 .  s  4 24  0 16 16 16 16  2 1 Ncon
0x16e 24 dc  0  24  0 r  y .   8  8  8  0 .  s  4 24  0 16 16 16 16  2 1 Ncon
0x16f 24 tc  0  32  0 r  y .   8  8  8  8 .  s  4 24  0 16 16 16 16  2 1 Ncon
0x170 24 dc  0  32  0 r  y .   8  8  8  8 .  s  4 24  0 16 16 16 16  2 1 Ncon
0x171 24 tc  0  24  0 r  y .   8  8  8  0 .  s  4 24  0 16 16 16 16  4 1 Ncon
0x172 24 dc  0  24  0 r  y .   8  8  8  0 .  s  4 24  0 16 16 16 16  4 1 Ncon
0x173 24 tc  0  32  0 r  y .   8  8  8  8 .  s  4 24  0 16 16 16 16  4 1 Ncon
0x174 24 dc  0  32  0 r  y .   8  8  8  8 .  s  4 24  0 16 16 16 16  4 1 Ncon
0x175 24 tc  0  24  0 r  . .   8  8  8  0 .  s  4 24  0 16 16 16 16  2 1 Ncon
0x176 24 dc  0  24  0 r  . .   8  8  8  0 .  s  4 24  0 16 16 16 16  2 1 Ncon
0x177 24 tc  0  32  0 r  . .   8  8  8  8 .  s  4 24  0 16 16 16 16  2 1 Ncon
0x178 24 dc  0  32  0 r  . .   8  8  8  8 .  s  4 24  0 16 16 16 16  2 1 Ncon
0x179 24 tc  0  24  0 r  . .   8  8  8  0 .  s  4 24  0 16 16 16 16  4 1 Ncon
0x17a 24 dc  0  24  0 r  . .   8  8  8  0 .  s  4 24  0 16 16 16 16  4 1 Ncon
0x17b 24 tc  0  32  0 r  . .   8  8  8  8 .  s  4 24  0 16 16 16 16  4 1 Ncon
0x17c 24 dc  0  32  0 r  . .   8  8  8  8 .  s  4 24  0 16 16 16 16  4 1 Ncon
0x17d 24 tc  0  24  0 r  y .   8  8  8  0 .  s  4 24  8 16 16 16 16  2 1 Ncon
0x17e 24 dc  0  24  0 r  y .   8  8  8  0 .  s  4 24  8 16 16 16 16  2 1 Ncon
0x17f 24 tc  0  32  0 r  y .   8  8  8  8 .  s  4 24  8 16 16 16 16  2 1 Ncon
0x180 24 dc  0  32  0 r  y .   8  8  8  8 .  s  4 24  8 16 16 16 16  2 1 Ncon
0x181 24 tc  0  24  0 r  y .   8  8  8  0 .  s  4 24  8 16 16 16 16  4 1 Ncon

....

0x288  0 sg  0  64  0 r  . .  32 32  0  0 f  .  4 24  8 16 16 16 16  0 0 None
0x289  0 sg  0  64  0    . .  32 32  0  0 f  .  4 24  8 16 16 16 16  0 0 None
0x28a  0 sg  0  64  0 r  y .  32 32  0  0 f  .  4 24  8 16 16 16 16  0 0 None
0x28b  0 sg  0  64  0    y .  32 32  0  0 f  .  4 24  8 16 16 16 16  0 0 None

Here is the code used to test :

import os

from panda3d.core import Texture, TextureStage, CardMaker, Shader, load_prc_file_data, WindowProperties, FrameBufferProperties
from direct.showbase.ShowBase import ShowBase

from direct.filter.FilterManager import FilterManager

#load_prc_file_data("", "gl-version 3 2")
load_prc_file_data("", "notify-level spam")
load_prc_file_data("", "textures-power-2 none")

def shader():
    return Shader.make(Shader.SL_GLSL,
                       vertex="""
#version 410

uniform mat4 p3d_ProjectionMatrix;
uniform mat4 p3d_ModelViewMatrix;

in vec4 p3d_Vertex;
in vec4 p3d_MultiTexCoord0;

out vec4 texcoord;

void main() {
    gl_Position = p3d_ProjectionMatrix * (p3d_ModelViewMatrix * p3d_Vertex);
    texcoord = p3d_MultiTexCoord0;
}
""",
                       fragment="""
#version 410

uniform mat4 p3d_TextureMatrix[2];
uniform sampler2D p3d_Texture0;
uniform sampler2D p3d_Texture1;

in vec4 texcoord;

out vec4 frag_color;

void main() {
    vec4 texcoord_tex0 = p3d_TextureMatrix[0] * texcoord;
    vec4 tex0 = texture(p3d_Texture0, texcoord_tex0.xy);
    frag_color = tex0;
}
""")

def shader_final():
    return Shader.make(Shader.SL_GLSL,
                       vertex="""
#version 410

uniform mat4 p3d_ProjectionMatrix;
uniform mat4 p3d_ModelViewMatrix;

in vec4 p3d_Vertex;
in vec4 p3d_MultiTexCoord0;

out vec4 texcoord;

void main() {
    gl_Position = p3d_ProjectionMatrix * (p3d_ModelViewMatrix * p3d_Vertex);
    texcoord = p3d_MultiTexCoord0;
}
""",
                       fragment="""
#version 410

uniform sampler2D p3d_Texture0;

in vec4 texcoord;

out vec4 frag_color;

void main() {
    vec4 tex0 = texture(p3d_Texture0, texcoord.xy);
    frag_color = tex0;
    frag_color[0] = 1;
}
""")

base = ShowBase()

color_buffer = Texture()
aux_buffer = Texture()

textures = {'color': color_buffer, 'aux0': aux_buffer}

manager = FilterManager(base.win, base.cam)
fbprops = FrameBufferProperties(FrameBufferProperties.get_default())
fbprops.set_aux_rgba(1)
final_quad = manager.render_scene_into(textures=textures, fbprops=fbprops)
final_quad.set_shader(shader_final())

cm = CardMaker('card')
card = render.attachNewNode(cm.generate())
card.setPos(-0.5, 3, -0.5)
card.setColor(0, 1, 0, 1)
card.set_shader(shader())

tex = loader.loadTexture('maps/smiley.rgb')
ts = TextureStage('first')
card.setTexture(ts, tex)

base.run()
fbprops = FrameBufferProperties(FrameBufferProperties.get_default())

Don’t do this. Create an empty FrameBufferProperties, and only override the properties you need. FilterManager already takes care of the defaults for you.

Incidentally, FilterManager also automatically sets the appropriate aux bits in FrameBufferProperties if you pass in an aux texture.

The reason it doesn’t work is likely because the default FrameBufferProperties include a request for back buffers. Offscreen buffers don’t have or need back buffers.

Thanks, that was the problem !

Without asking for an aux buffer, the offscreen buffer creation was successful however, so I never thought the fb properties was the culprit.