Crafter.Graphics/tests
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Jorijn van der Graaf 3f646ec42b
fix(wayland): the first key repeat lands at the delay, not as a burst of the periods since the press
keyboard_key set lastFireTime to the press and TickKeyRepeats caught up on
every period since it, so the first tick past the compositor's delay fired
floor(delay / period) repeats at once: with rate 25 and delay 600 a held
Backspace deleted sixteen characters at the delay mark and a held letter
put fifteen copies in the field, from a hardware keyboard and from an
on-screen keyboard that sends Backspace as key events. A rate above 1000
made the period zero and the loop endless.

The first repeat now lands at the delay, as wl_keyboard.repeat_info
promises (one after `delay`, then `rate` a second): the first tick past
the delay sets lastFireTime to pressTime + delay - period. The period is
at least a millisecond, and the catch-up after a stalled frame is capped
(kKeyRepeatCatchUp, three) with the rest of the stall dropped, so a held
key is never a burst of edits. TickKeyRepeats takes the clock as a
parameter for the tests; the frame path's call is unchanged.

tests/KeyRepeat drives TickKeyRepeats with an injected clock on a
default-constructed Window: nothing before the delay, one at it, one per
period after, a capped catch-up, a key without text, a rate above 1000, a
released key, rate 0.
2026-11-01 00:53:56 +01:00
..
BLASBuildOptions feat: windows on their own clock, deferred deletion for every handle owner, staged re-uploads, and RTPass push data 2026-10-20 20:20:29 +02:00
DebugMessengerSeverity feat: windows on their own clock, deferred deletion for every handle owner, staged re-uploads, and RTPass push data 2026-10-20 20:20:29 +02:00
DeferredDeletion feat: windows on their own clock, deferred deletion for every handle owner, staged re-uploads, and RTPass push data 2026-10-20 20:20:29 +02:00
DeletionQueueThreads feat: windows on their own clock, deferred deletion for every handle owner, staged re-uploads, and RTPass push data 2026-10-20 20:20:29 +02:00
DescriptorHeapLayout fix(descriptor-heap): round the buffer region up, align the reserved range for buffers too, and never size a heap at zero 2026-10-31 16:06:44 +01:00
DeviceFeatures feat(device): applications ask for the device features their shaders use 2026-10-31 06:40:02 +01:00
DeviceSelection feat: windows on their own clock, deferred deletion for every handle owner, staged re-uploads, and RTPass push data 2026-10-20 20:20:29 +02:00
ExampleShaders fix(rt): split Sponza's combined image sampler into a heap texture and sampler 2026-10-31 08:25:52 +01:00
FeatureRequests feat(device): applications ask for the device features their shaders use 2026-10-31 06:40:02 +01:00
FontAdvanceCache SPDX license update 2026-07-22 18:09:06 +02:00
FontAtlasDecode fix(ui): decode the font atlas's SDF in atlas pixels, so text edges ramp over one screen pixel 2026-10-31 20:23:40 +01:00
FontAtlasDirtyRect SPDX license update 2026-07-22 18:09:06 +02:00
FontAtlasEviction fix(font-atlas): give glyphs that find no room a cell when the next frame begins, evicting the least recently drawn 2026-10-31 19:43:58 +01:00
FontAtlasPacker fix(font-atlas): give glyphs that find no room a cell when the next frame begins, evicting the least recently drawn 2026-10-31 19:43:58 +01:00
FrameLoopSync fix(window): size the swapchain for its present mode, and key frames in flight by frame instead of image 2026-10-31 18:14:18 +01:00
HeapASRead fix(window): size the swapchain for its present mode, and key frames in flight by frame instead of image 2026-10-31 18:14:18 +01:00
HeapDynamicIndexHit fix(window): size the swapchain for its present mode, and key frames in flight by frame instead of image 2026-10-31 18:14:18 +01:00
HeapSlotReuse feat: windows on their own clock, deferred deletion for every handle owner, staged re-uploads, and RTPass push data 2026-10-20 20:20:29 +02:00
ImageStagingRelease feat: windows on their own clock, deferred deletion for every handle owner, staged re-uploads, and RTPass push data 2026-10-20 20:20:29 +02:00
InputFieldCaretCache SPDX license update 2026-07-22 18:09:06 +02:00
InputFieldHitTest SPDX license update 2026-07-22 18:09:06 +02:00
KeyRepeat fix(wayland): the first key repeat lands at the delay, not as a burst of the periods since the press 2026-11-01 00:53:56 +01:00
MemoryTypeFallback SPDX license update 2026-07-22 18:09:06 +02:00
MeshDecompressStagingRelease feat: windows on their own clock, deferred deletion for every handle owner, staged re-uploads, and RTPass push data 2026-10-20 20:20:29 +02:00
MeshLifetime feat: windows on their own clock, deferred deletion for every handle owner, staged re-uploads, and RTPass push data 2026-10-20 20:20:29 +02:00
MipChainBarrierBatch SPDX license update 2026-07-22 18:09:06 +02:00
MipChainNonSquare feat: windows on their own clock, deferred deletion for every handle owner, staged re-uploads, and RTPass push data 2026-10-20 20:20:29 +02:00
MouseScroll SPDX license update 2026-07-22 18:09:06 +02:00
PipelineCacheValidation SPDX license update 2026-07-22 18:09:06 +02:00
PipelineLifetime feat: windows on their own clock, deferred deletion for every handle owner, staged re-uploads, and RTPass push data 2026-10-20 20:20:29 +02:00
PointerEnterLeave fix(win32): restore mouse moves, add enter and leave, capture drags, and close and destroy windows cleanly 2026-10-31 03:29:50 +01:00
PointerWin32 fix(window): set the title on Win32 through a Unicode window class, and send only the view's bytes on Wayland 2026-10-31 18:28:16 +01:00
PushConstantRewrite feat(device): applications ask for the device features their shaders use 2026-10-31 06:40:02 +01:00
RTPassPushData fix(window): size the swapchain for its present mode, and key frames in flight by frame instead of image 2026-10-31 18:14:18 +01:00
SetupCmdBufferReuse fix(window): size the swapchain for its present mode, and key frames in flight by frame instead of image 2026-10-31 18:14:18 +01:00
ShapeTextCache fix(font-atlas): give glyphs that find no room a cell when the next frame begins, evicting the least recently drawn 2026-10-31 19:43:58 +01:00
SwapchainBarrierScope feat: windows on their own clock, deferred deletion for every handle owner, staged re-uploads, and RTPass push data 2026-10-20 20:20:29 +02:00
SwapchainImageCount fix(window): size the swapchain for its present mode, and key frames in flight by frame instead of image 2026-10-31 18:14:18 +01:00
SwapchainTransferDst fix(window): size the swapchain for its present mode, and key frames in flight by frame instead of image 2026-10-31 18:14:18 +01:00
TextAntialiasing fix(ui): decode the font atlas's SDF in atlas pixels, so text edges ramp over one screen pixel 2026-10-31 20:23:40 +01:00
TextWin32 fix(window): set the title on Win32 through a Unicode window class, and send only the view's bytes on Wayland 2026-10-31 18:28:16 +01:00
TitleWayland fix(window): set the title on Win32 through a Unicode window class, and send only the view's bytes on Wayland 2026-10-31 18:28:16 +01:00
TLASBuildBarrier fix(rt): rebuild TLASes in place, after earlier traces, and queue their handles like a Mesh's 2026-10-31 02:32:48 +01:00
TLASEmptyBuild test(rt): an empty scene's TLAS builds, then grows and shrinks 2026-10-19 03:03:16 +02:00
TLASHighWaterMark fix(rt): rebuild TLASes in place, after earlier traces, and queue their handles like a Mesh's 2026-10-31 02:32:48 +01:00
TLASInstanceDirtyTracking fix(rt): never destroy the static TLASes 2026-10-19 03:03:16 +02:00
TLASLifetime fix(rt): rebuild TLASes in place, after earlier traces, and queue their handles like a Mesh's 2026-10-31 02:32:48 +01:00
UIClipFlag SPDX license update 2026-07-22 18:09:06 +02:00
UIDispatchAtlasFlush fix(font-atlas): give glyphs that find no room a cell when the next frame begins, evicting the least recently drawn 2026-10-31 19:43:58 +01:00
UIFallbackParity fix(window): size the swapchain for its present mode, and key frames in flight by frame instead of image 2026-10-31 18:14:18 +01:00
UIFusedShader test(ui): the descriptor-set fallback draws the same frame as the heap 2026-10-06 17:28:46 +02:00
UploadInFlight feat: windows on their own clock, deferred deletion for every handle owner, staged re-uploads, and RTPass push data 2026-10-20 20:20:29 +02:00
UploadStrategy SPDX license update 2026-07-22 18:09:06 +02:00
VulkanBufferAddress feat: windows on their own clock, deferred deletion for every handle owner, staged re-uploads, and RTPass push data 2026-10-20 20:20:29 +02:00
VulkanBufferFlushGate SPDX license update 2026-07-22 18:09:06 +02:00
VulkanBufferRangedFlush SPDX license update 2026-07-22 18:09:06 +02:00
VulkanBufferResizeReuse SPDX license update 2026-07-22 18:09:06 +02:00
VulkanShaderLifetime feat: windows on their own clock, deferred deletion for every handle owner, staged re-uploads, and RTPass push data 2026-10-20 20:20:29 +02:00
Win32Link test(win32): drop the __libc_single_threaded stand-in, which crafter-build 5.0.0 made unneeded 2026-11-01 00:37:41 +01:00
WindowOptionalGlobals fix(wayland): open windows on compositors without xdg-decoration, viewporter or fractional scale 2026-10-31 09:59:13 +01:00
WindowUpdateClock feat: windows on their own clock, deferred deletion for every handle owner, staged re-uploads, and RTPass push data 2026-10-20 20:20:29 +02:00