MOOR security

mtl12 Devlog, Seite 5

Ältere Einträge aus dem Devlog. Projekt, Stand und Galerie stehen auf der ersten Seite.

Einträge

Die Einträge sind auf Englisch verfasst. 72 Einträge, neueste zuerst. Diese Seite zeigt 026 bis 015.

  1. Entry 026

    A hull shader without a hull stage

    D3D12 tessellation now runs on Metal inside one render pass, using object functions (the first stage of Metal's mesh pipeline) as compute that barriers can order against vertex work.

  2. Entry 025

    Integer border colours on a GPU with three fixed ones

    Shaders can now sample integer textures with any integer border colour on Metal, which only offers black, transparent black and white.

  3. Entry 024

    Barycentrics on a GPU API with no per-vertex inputs

    Pixel shaders can now read their triangle's barycentric weights and each vertex's raw attribute value on Metal, which has no per-vertex inputs; the device reports Shader Model 6.7.

  4. Entry 023

    A room with light shafts, checked against a ray tracer

    A game-style frame with sun shadows and light shafts renders correctly through the layer, and an independent Python ray tracer agrees exactly on every pixel it can vouch for.

  5. Entry 022

    Derivatives in compute shaders, and a compiler crash that a texture write avoids

    Most of what Shader Model 6.6 adds now works on Metal, including derivatives in compute shaders, which Metal kernels don't have; one Apple GPU limit remains.

  6. Entry 021

    Faking a 96-bit format Metal doesn't have, and a sentinel that looked like an error

    Direct3D 12's three-channel 32-bit formats now work on Metal, which has no 96-bit format, and shaders that index the descriptor heap directly (Shader Model 6.6) now bind correctly.

  7. Entry 020

    Undoing copies that should not have run, and a stale read through a second view

    Predicated D3D12 copies now work on Metal by running the copy and undoing it on the GPU, and a thread can now read its own write through a second view of the same memory.

  8. Entry 019

    Stream output on Metal, which has no transform feedback

    D3D12 stream output (capturing vertex shader results into buffers) now works on Metal by running a second copy of the vertex shader once per captured vertex, over inputs a compute pass gathers in D3D12's order.

  9. Entry 018

    ExecuteIndirect through Metal indirect command buffers, and a compiler that crashes instead of failing

    ExecuteIndirect now changes vertex and index buffers per draw by encoding a Metal indirect command buffer on the GPU; on the way, two Metal quirks: odd bind counts shift strides, and one shader class crashes the compiler.

  10. Entry 017

    A GPU clock that counted in the wrong unit, and samplers that take pixel coordinates

    Under Rosetta, mach_absolute_time() counts nanoseconds while Metal's GPU timestamps count 24 MHz ticks, so the CPU/GPU clock calibration was off by a factor of about 41.7.

  11. Entry 016

    Fitting 2048 samplers into 1024, and tests that wake up when you answer a QueryInterface

    Moving one sampler field into the shader brought a 2048-sampler heap under Metal's 1024 budget, and exposing newer device interfaces briefly turned two skipped tests into failures.

  12. Entry 015

    Video formats, honest format caps, and the 1024th sampler

    Apple's GPU lets you create more samplers than shaders can use, and says nothing: sampler 1024 and later return garbage.