event res.sh.: example to show read/write same texture threading with rsh with resource - more external sync needed? advanced blend modes gl: tex formats (texture, readback) gl: srgb? (glEnable and co.) should istexformatsupported should check srgb combinations vk: image in wrong layout when beginFrame-endFrame without a pass in it cbuffer alignment rules - some things fail to translate (to hlsl e.g. with structs), which is fine but how to mitigate what does image copy do for compressed formats? reduce viewport/scissor/other state changes in a pass vk: test FrameOpDeviceLost somehow d3d device loss? more what-if-resource-rebuilt cases anisotropic gl: more ubuf types more QImage->tex formats if tex adjust its size (e.g. npot on gl), should QImage get scaled automatically? pool staging/readback buffers? d3d, gl, mtl: cache shader sources? gl: ubuf structs, arrays test cubemap face as target test cubemap face readback object names for other than buf/rb/tex optional: compute? mtl: drawable warning? gl: target QOpenGLWindow/Widget? threading options? secondary command lists? copy/transfer queue? vkmemalloc block size config? d3d: support DxcCompiler (in addition to d3dcompiler?) when runtime compiling hlsl? tessellation? indirect draw? vk: msaa texture or msaa color renderbuffer could be lazy/transient when only used with resolve vk: subpasses? more tex: 3d, array? vk compressed tex: could it consume a complete ktx without any memcpys? multi mip/layer copy? (fewer barriers...) multi-buffer (region) readback? depth readback? copy image depth? gl: markers and object names via gl_khr_debug shadertools: dxc for d3d as an alternative to fxc? hlsl -> dxc -> spirv -> spirv-cross hmmm... +++ done res.sh.: mtl res.sh.: gl res.sh.: exercise it in multiwindow_threaded too res.sh.: vk, d3d res.sh.: rhi resource tracking, isSharable, orphaning, ... res.sh.: example to show using same texture revise create() and importing external device objects revise structs in api primitive restart fix independent builds basic docs vk, d3d, mtl: minimize vertex input changes inside passes mtl: cbuffers, textures, samplers set should be batched too mtl: reduce set* mtl: report readback temp buf vk: support instanceStepRate via VK_EXT_vertex_attribute_divisor resize to 0 width or height fails (vk, d3d) vk: rendering hangs sometimes when minimize and back on some systems? allow requesting no-vsync present mode where applicable d3d: timestamp query vk: timestamp query prof: report readback temp buf merge offscreen examples into one mtl: max texture size vk: obj name and debug markers vk, gl: tex and other prof max texture size stuff d3d: tex and other prof plainqwindow examples should be reorganized into one (using examplefw) d3d: debug markers, object names d3d: texture import/export vk: memalloc stats to prof mtl: debug: markers (begin, end, msg) mtl: debug: object names prof: cbor output from resource logs mtl: buf/tex/rb/sc prof mtl, gl, vk: texture import/export rhi native handle getter (device, ...) imgui example vk: shouldn't just qFatal mtl: multiwindow multi window? (multi swapchain) -> trouble test cubemap what if window is changed on swapchain (vk, d3d may break as of now) mtl: finish() mtl: readback (tex, backbuffer) mtl: rhi without a window, offscreen frame mtl: compressed textures mtl: srgb (tex, swapchain buf) change how resolve is done mtl: color renderbuffer targeting mip level in texrt mtl: targeting cubemap faces mtl: cubemaps mtl: msaa tex+rt clear window vs surface/layer size mess mtl: msaa (onscreen) mtl: buffer upload with offset/size mtl: texcopy mtl: tex upload with pos mtl: mipmap generation vk, d3d, gl: mipmap gen msaa swapchain readback d3d: resolveimage (color) vk: resolveimage (color) gl: resolveimage (color) vk: color renderbuffer d3d: color renderbuffer gl: color renderbuffer vk: msaa tex+rt gl: buffer upload with offset/size d3d: buffer upload with offset/size vk: buffer upload with offset/size buffer upload with offset resourceUpdate (run updates without begin/endPass) resourceUpdates in endPass d3d: msaa tex+rt multisample texture (and tex rt) (no readback) gl: compressed textures vk, gl: texcopy move cb api into QRhiCommandBuffer d3d: texcopy copyimage (color, with rect?, no resolve or transforms here) vk, d3d, gl: tex upload with pos res upd batch combine gl: offscreen frame, readback d3d: readback d3d: offscreen frame vk: read back the backbuffer vk: readback size/formats vk: readback vk: implement finish() some wait-gpu stuff for waiting for readback results inside a begin-endFrame f.ex. readback api rhi without a window, fully offscreen vk: compressed textures (etc2, astc, bc) vk: srgb (tex, swapchain buf) d3d: srgb support (texture, swapchain buf) d3d: support for compressed textures (bc) d3d: msaa (onscreen) bytecode for metal bytecode (fxc) for d3d vk: im.layout transition missing when no upload, no render to (or is the case invalid?) vk, d3d: verify no-color-just-depth again preservecolor applies to which att. (all -> fix mtl) mtl: depth tex mtl: mrt mtl: texture rt mtl: batch better in setVertexBuffers spirv-cross error reporting (must enable exceptions and catch all in shadertools, no other way) mtl: should currentPassEncoder & co. be in the cb data instead? mtl: drop texture staging buf when !ChangesFrequently mtl: stagingBuffer should be per frame to be safe vk: per frame staging buffers mtl: mipmap upload mtl: indexed draw mtl: basic texture texture ChangesInfrequently -> ChangesFrequently mtl: depth-stencil mtl: buffer logic is borked mtl: fix Dynamic for non-uniform buffers mtl: forcing immut. to Shared should not need multiple backing buffers d3d: very basic adapter selection what's up with instance step rate remove geometry shader from enum hlsl version config to qsb msl version config to qsb version to qsb data stream upgrade vkmemalloc mtl: shader lang. version rename res pattern to new-build-release (from create-build-release)? make rp dep in ps less invasive (rethink how QRhiRenderPass is handled) review swapchain param handling gl: offscreensurface ownership not taken (fix examples) d3d: why rtv/dsv in rp -> should be in rtD new "minimal" example cubemap face as target test mrt vk: mrt d3d: mrt texture rt api revamp test mipmap vk: texture filtering d3d: texture filtering gl: texture filtering cubemaps, pregenerated mipmap, upload multiple faces/mipmaps in one copy d3d: depth only offscreen pass vk: depth only offscreen pass vk, d3d: test depth texture bring up metal d3d: tex/sampler for vs vk: free staging buffer for textures after upload when ChangesInfrequently is set immutable-or-not flag for QRhiTexture? (could drop staging alloc after 1st upload when immut.) vk: free staging buffer for immutable buffers after upload vk: verify msaa (onscreen) revise how clear values are handled (ref, not ptr) d3d/vk: fix Dynamic for non-uniform buffers switch to immutable - static - dynamic buffer types (backends may not care for now) make clearValues optional in beginPass (when preserving contents for offscreen) drop front-and-back cull vk should update lastActiveFrameSlot even when cur.obj is same exercise indexed drawing gl setGraphicsPipeline should track srb->generation and issue BindGraphicsPipeline when different d3d to track buffer, texture, sampler generation and update the buffer/srv/sampler in the batchedbinding lists d3d setGraphicsPipeline should track srb->generation and issue BindGraphicsPipeline when different scissor-enable flag drop triangle fan do something with offset and size in srb::Binding::uniformBuffer start d3d11 backend what if ps is rebuilt move correctionmatrix to backend remove some inlines in public api hide virtuals remove QVk*Private buf rebuilt -> srb? srb rebuilt -> ps? texture rebuilt -> texture rt? hide VkSurfaceKHR from api vkcmdcopybuffertoimage test upload+render-to (preserved) barriers rendertarget scheduleRelease -> releaseLater (+ update recreate example) static buffer -> gpu_only, staging cpu_only, vkCmdCopyBuffer textures msaastencil depth bring back startBinding pipeline obj destroy (deferred d.list?) shader resource if. topology, cull blend