is presently its sole maintainer,
You can support him:
Set the stage for this week
Demo the problem with the tile size
Confirm that _mm_sfence is unnecessary
Blackboard: "Write-Combining Memory"
Blackboard: Tiles and Alignment
Suggest rounding TileWidth and TileHeight to the nearest 4 and aligning the tiles to the 4-byte boundary
Think some more, and then unthink it
handmade_render_group.cpp: Ensure that we always get aligned tiles
Blackboard: Calculating and filling the correct number of 4-pixel units
Blackboard: The destination buffer must always allow us to overwrite it by a certain amount
Assert that OutputTarget->Memory is aligned to 16-bytes
Round TileWidth up to the nearest 4
See what numbers we're getting
Ensure that FinalTileWidth accounts for the fact that it'll be smaller
Remove FinalTileWidth and limit ClipRect.MaxX to the OutputTarget->Width
Remove the ClipRect adjustments
Run single-threaded for the moment
Moment of realisation: We're only clipping to the end, but don't handle clipping at the beginning
Blackboard: The clipping problem
Align the MinX and MaxX
Blackboard: Setting the EndClipMasks
Figure out when to use the EndClipMask
Compile and see what's happening
Reverse the sense of the test and run it again
See if we're always aligned
Compile in -O2 and turn on multi-threading to ensure everything's still kosher
win32_handmade.cpp: Double-check that the platform code is allocating the memory aligned
Align Buffer->Pitch to 16-bytes
handmade_platform.h: Introduce Align16
Everything looks fine at 1920x1080
handmade.cpp: Setup the PlatformAddEntry and PlatformCompleteAllWork at the beginning
robotchocolatedino Q: The bitmap memory size calculation squares BytesPerPixel which allocates more memory than necessary
win32_handmade.cpp: Remove the multiplication by BytesPerPixel
ttbjm Q: Can you test if weird resolutions actually are working?
handmade_render_group.cpp: Ensure that it goes all the way to the end if this is the last tile
handmade.cpp: Hard-set the game's DrawBuffer dimensions to test our support of arbitrary resolutions
braincruser Q: Will you check for Cache Aliasing? With this much alignment hitting cache aliasing is much easier
braincruser Q: Cache Associativity aliasing...
flyingwafflenyc Q: What about the extra pixel around the edges to deal with bilinear filtering? Will you get rid of that?
Compile with that #if 0'd out and glimpse into the future of 4K art
pragmascrypt Q: Will you keep the rendering of the two lines on separate hyperthreads?
terrorscout Q: So this game is going to be a 4K Zelda 1-style game?
Assess our progress and glimpse into the future of tightening up the renderer
Shut things down here