Skip to content

sokol_gfx.h: WebGPU Backend TODO #278

@floooh

Description

@floooh
  • new validation error: "Buffer binding size cannot be zero."
  • cgltf-sapp: needs compressed texture extension
  • cubemaprt-sapp: rendering to MSAA layered textues (e.g. cubemap) not allowed in WebGPU
  • cubemaprt-sapp: Buffer binding size cannot be zero (new issue after the above MSAA rendering problem had been fixed)
  • sokol_fontstash.h: add WebGPU shader
  • sokol_gl.h: add WebGPU shader
  • pixelformats_sapp.h: fix renderable pixel formats caps for WebGPU
  • plmpeg_sapp.h: decoded textures broken (green tint and junk on right border, the latter is most likely a bug in the texture data upload)
  • the sgl-lines-sapp demo has rendering artefacts (every few frames one object is rendered at wrong position, uniform update problem?)
  • the cubemaprt-wgpu sample has a very quickly growing memory leak with the Metal backend (not tested elsewhere yet). About 20 MB per frame.
  • sokol-gfx needs to add 64 KB to the uniform-buffer size (since this is the max uniform block size on NVIDIA)
  • update sokol-gfx and sokol-app documentation
  • update sokol_gl.h, sokol_imgui.h and sokol_fontstash.h documention (new SOKOL_WGPU macro)
  • add "sample_count" to sg_context_desc, and add a sapp_sample_count() function to sokol_app.h
  • example code in sokol-glue documentation header
  • blog post
  • README update

Other:

  • put d3d11, gl, mtl and wgpu specific members in sg_desc into nested structs
  • Move the following sg_desc members from the backend-specific context nested struct into the backend-agnostic part:
    • global_uniform_buffer_size (rename to uniform_buffer_size)
    • global_staging_buffer_size (rename to staging_buffer_size)
    • sampler_cache_size (rename to sampler_cache_size... or sample_cache_num_items?)
    • render_format (rename to color_format)
    • add depth_format
      Use color_format and depth_format as defaults for pipeline state creation (and in the validation layer)
  • emscripten builds currently don't support closure, need to investigate whether there's something missing from emscripten's WebGPU support, or whether it's in my own code.
  • fix all sokol-samples for the new sg_desc
  • fix the chips emulators for the new sg_desc
  • fix v6502r for the new sg_desc

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions