Handmade Hero»Episode Guide
Generalizing Code Reloading
?
?

Keyboard Navigation

Global Keys

[, < / ], > Jump to previous / next episode
W, K, P / S, J, N Jump to previous / next marker
t / T Toggle theatre / SUPERtheatre mode
V Revert filter to original state Y Select link (requires manual Ctrl-c)

Menu toggling

q Quotes r References f Filter y Link c Credits

In-Menu Movement

a
w
s
d
h j k l


Quotes and References Menus

Enter Jump to timecode

Quotes, References and Credits Menus

o Open URL (in new tab)

Filter Menu

x, Space Toggle category and focus next
X, ShiftSpace Toggle category and focus previous
v Invert topics / media as per focus

Filter and Link Menus

z Toggle filter / linking mode

Credits Menu

Enter Open URL (in new tab)
0:02Welcome to the stream with an apparently successful build of TensorFlow
🗹
0:02Welcome to the stream with an apparently successful build of TensorFlow
🗹
0:02Welcome to the stream with an apparently successful build of TensorFlow
🗹
2:05Recap the current state of our lighting
🗩
2:05Recap the current state of our lighting
🗩
2:05Recap the current state of our lighting
🗩
2:28Demo our current lighting
🏃
2:28Demo our current lighting
🏃
2:28Demo our current lighting
🏃
3:45Determine to hook up the in-game audio recording
🏃
3:45Determine to hook up the in-game audio recording
🏃
3:45Determine to hook up the in-game audio recording
🏃
4:13Consider going over the lighting with a fine tooth comb for some weeks, before leaving it with a view to maybe coming back to it at the end
🏃
4:13Consider going over the lighting with a fine tooth comb for some weeks, before leaving it with a view to maybe coming back to it at the end
🏃
4:13Consider going over the lighting with a fine tooth comb for some weeks, before leaving it with a view to maybe coming back to it at the end
🏃
6:12Note that our lighting hierarchy and ray caster are working okay, but the summation and frame-to-frame persistence needs work
📖
6:12Note that our lighting hierarchy and ray caster are working okay, but the summation and frame-to-frame persistence needs work
📖
6:12Note that our lighting hierarchy and ray caster are working okay, but the summation and frame-to-frame persistence needs work
📖
7:54Consider giving our lighting values some real-world meaning, adding an exposure function, and creating debug visualisation
🏃
7:54Consider giving our lighting values some real-world meaning, adding an exposure function, and creating debug visualisation
🏃
7:54Consider giving our lighting values some real-world meaning, adding an exposure function, and creating debug visualisation
🏃
10:01Set up to make the renderer hot reloadable
📖
10:01Set up to make the renderer hot reloadable
📖
10:01Set up to make the renderer hot reloadable
📖
13:53Begin to generalise code reloading, introducing win32_loaded_code for win32_game_code to contain, and win32_renderer_code
13:53Begin to generalise code reloading, introducing win32_loaded_code for win32_game_code to contain, and win32_renderer_code
13:53Begin to generalise code reloading, introducing win32_loaded_code for win32_game_code to contain, and win32_renderer_code
17:36Introduce WIN32_LOADED_CODE_ENTRY_POINT and win32_game_function_table
17:36Introduce WIN32_LOADED_CODE_ENTRY_POINT and win32_game_function_table
17:36Introduce WIN32_LOADED_CODE_ENTRY_POINT and win32_game_function_table
20:59Remove win32_game_code with a view to switching Win32LoadGameCode() over to use our new win32_game_function_table and win32_loaded_code structs
20:59Remove win32_game_code with a view to switching Win32LoadGameCode() over to use our new win32_game_function_table and win32_loaded_code structs
20:59Remove win32_game_code with a view to switching Win32LoadGameCode() over to use our new win32_game_function_table and win32_loaded_code structs
22:02Introduce Win32GameFunctionTableNames[] for Win32LoadGameCode() to lookup into for its GetProcAddress() calls, augmenting win32_loaded_code with FunctionCount, FunctionNames, Functions and TempDLLNumber
22:02Introduce Win32GameFunctionTableNames[] for Win32LoadGameCode() to lookup into for its GetProcAddress() calls, augmenting win32_loaded_code with FunctionCount, FunctionNames, Functions and TempDLLNumber
22:02Introduce Win32GameFunctionTableNames[] for Win32LoadGameCode() to lookup into for its GetProcAddress() calls, augmenting win32_loaded_code with FunctionCount, FunctionNames, Functions and TempDLLNumber
31:39Update Win32UnloadGameCode() and WinMainCRTStartup() to use our new win32_loaded_code and Win32LoadCode()
31:39Update Win32UnloadGameCode() and WinMainCRTStartup() to use our new win32_loaded_code and Win32LoadCode()
31:39Update Win32UnloadGameCode() and WinMainCRTStartup() to use our new win32_loaded_code and Win32LoadCode()
35:02Consider welding win32_state into win32_loaded_code
📖
35:02Consider welding win32_state into win32_loaded_code
📖
35:02Consider welding win32_state into win32_loaded_code
📖
37:35Augment win32_loaded_code with FullPath and LockFullPath
37:35Augment win32_loaded_code with FullPath and LockFullPath
37:35Augment win32_loaded_code with FullPath and LockFullPath
38:54Introduce Win32CheckForCodeChange() and Win32ReloadCode() for WinMainCRTStartup() to call, renaming win32_loaded_code.FullPath to DLLFullPath
38:54Introduce Win32CheckForCodeChange() and Win32ReloadCode() for WinMainCRTStartup() to call, renaming win32_loaded_code.FullPath to DLLFullPath
38:54Introduce Win32CheckForCodeChange() and Win32ReloadCode() for WinMainCRTStartup() to call, renaming win32_loaded_code.FullPath to DLLFullPath
44:55Fix compile errors
44:55Fix compile errors
44:55Fix compile errors
45:59The code loading works
🏃
45:59The code loading works
🏃
45:59The code loading works
🏃
46:19Make UpdateAndRenderWorld() position the DebugLightP higher up
46:19Make UpdateAndRenderWorld() position the DebugLightP higher up
46:19Make UpdateAndRenderWorld() position the DebugLightP higher up
46:52Verify that the code reloading works
🏃
46:52Verify that the code reloading works
🏃
46:52Verify that the code reloading works
🏃
46:59Make UpdateAndRenderWorld() position the DebugLightP as before
46:59Make UpdateAndRenderWorld() position the DebugLightP as before
46:59Make UpdateAndRenderWorld() position the DebugLightP as before
47:04Verify that the code reloading works
🏃
47:04Verify that the code reloading works
🏃
47:04Verify that the code reloading works
🏃
47:15Move onto making the renderer hot reloadable
📖
47:15Move onto making the renderer hot reloadable
📖
47:15Move onto making the renderer hot reloadable
📖
49:19Introduce Win32RendererFunctionNames[] in the renderer, move Win32InitDefaultRenderer() into win32_renderer_test.cpp and weld Win32LoadRendererDLL() into it
49:19Introduce Win32RendererFunctionNames[] in the renderer, move Win32InitDefaultRenderer() into win32_renderer_test.cpp and weld Win32LoadRendererDLL() into it
49:19Introduce Win32RendererFunctionNames[] in the renderer, move Win32InitDefaultRenderer() into win32_renderer_test.cpp and weld Win32LoadRendererDLL() into it
52:41Introduce win32_renderer_function_table
52:41Introduce win32_renderer_function_table
52:41Introduce win32_renderer_function_table
54:29sagian2005 Q: You can turn off the "assign with conditional expression" warning / error
🗪
54:29sagian2005 Q: You can turn off the "assign with conditional expression" warning / error
🗪
54:29sagian2005 Q: You can turn off the "assign with conditional expression" warning / error
🗪
54:49Make WinMainCRTStartup() push win32_handmade_opengl.dll and lock.tmp through Win32BuildEXEPathFileName(), updating build.bat for renderer hot reloading
54:49Make WinMainCRTStartup() push win32_handmade_opengl.dll and lock.tmp through Win32BuildEXEPathFileName(), updating build.bat for renderer hot reloading
54:49Make WinMainCRTStartup() push win32_handmade_opengl.dll and lock.tmp through Win32BuildEXEPathFileName(), updating build.bat for renderer hot reloading
1:00:42Update WinMainCRTStartup() to load the renderer using Win32LoadCode()
1:00:42Update WinMainCRTStartup() to load the renderer using Win32LoadCode()
1:00:42Update WinMainCRTStartup() to load the renderer using Win32LoadCode()
1:04:05The renderer code loading works
🏃
1:04:05The renderer code loading works
🏃
1:04:05The renderer code loading works
🏃
1:04:11Set up to reload the renderer
📖
1:04:11Set up to reload the renderer
📖
1:04:11Set up to reload the renderer
📖
1:06:51Augment win32_renderer_function_table with BeginFrame and EndFrame, making build.bat export Win32BeginFrame() and Win32EndFrame(), and WinMainCRTStartup() operate on RendererFunctions
1:06:51Augment win32_renderer_function_table with BeginFrame and EndFrame, making build.bat export Win32BeginFrame() and Win32EndFrame(), and WinMainCRTStartup() operate on RendererFunctions
1:06:51Augment win32_renderer_function_table with BeginFrame and EndFrame, making build.bat export Win32BeginFrame() and Win32EndFrame(), and WinMainCRTStartup() operate on RendererFunctions
1:10:30Weld Win32InitDefaultRenderer() into RenderLoop()
1:10:30Weld Win32InitDefaultRenderer() into RenderLoop()
1:10:30Weld Win32InitDefaultRenderer() into RenderLoop()
1:12:50Verify that the renderer test loads
🏃
1:12:50Verify that the renderer test loads
🏃
1:12:50Verify that the renderer test loads
🏃
1:13:19Verify that Handmade Hero loads
🏃
1:13:19Verify that Handmade Hero loads
🏃
1:13:19Verify that Handmade Hero loads
🏃
1:13:43Enable WinMainCRTStartup() to reload the renderer
1:13:43Enable WinMainCRTStartup() to reload the renderer
1:13:43Enable WinMainCRTStartup() to reload the renderer
1:16:14Run the game
🏃
1:16:14Run the game
🏃
1:16:14Run the game
🏃
1:16:34Make OpenGLEndFrame() set the glClearColor to 1, 0, 1, 1
1:16:34Make OpenGLEndFrame() set the glClearColor to 1, 0, 1, 1
1:16:34Make OpenGLEndFrame() set the glClearColor to 1, 0, 1, 1
1:17:12Hit a "User-mode data execution prevention (DEP) violation"
🏃
1:17:12Hit a "User-mode data execution prevention (DEP) violation"
🏃
1:17:12Hit a "User-mode data execution prevention (DEP) violation"
🏃
1:18:19Make WinMainCRTStartup() handle not-loaded renderer, checking that RendererCode.IsValid before calling RendererCode.EndFrame(), and also issuing an "Unable to load renderer" fatal error
1:18:19Make WinMainCRTStartup() handle not-loaded renderer, checking that RendererCode.IsValid before calling RendererCode.EndFrame(), and also issuing an "Unable to load renderer" fatal error
1:18:19Make WinMainCRTStartup() handle not-loaded renderer, checking that RendererCode.IsValid before calling RendererCode.EndFrame(), and also issuing an "Unable to load renderer" fatal error
1:27:02Crash on OutputPlayingSounds()
🏃
1:27:02Crash on OutputPlayingSounds()
🏃
1:27:02Crash on OutputPlayingSounds()
🏃
1:27:27Fix WinMainCRTStartup() to correctly set the Frame
1:27:27Fix WinMainCRTStartup() to correctly set the Frame
1:27:27Fix WinMainCRTStartup() to correctly set the Frame
1:27:55Run the game
🏃
1:27:55Run the game
🏃
1:27:55Run the game
🏃
1:28:02Recompile
1:28:02Recompile
1:28:02Recompile
1:28:06Hit a "User-mode data execution prevention (DEP) violation"
🏃
1:28:06Hit a "User-mode data execution prevention (DEP) violation"
🏃
1:28:06Hit a "User-mode data execution prevention (DEP) violation"
🏃
1:28:46Try to step in to Win32ReloadCode()
🏃
1:28:46Try to step in to Win32ReloadCode()
🏃
1:28:46Try to step in to Win32ReloadCode()
🏃
1:29:53Run in debug mode, recompile and break on the RenderCode Win32ReloadCode() call, to find that the problem is in OpenGLEndFrame()
🏃
1:29:53Run in debug mode, recompile and break on the RenderCode Win32ReloadCode() call, to find that the problem is in OpenGLEndFrame()
🏃
1:29:53Run in debug mode, recompile and break on the RenderCode Win32ReloadCode() call, to find that the problem is in OpenGLEndFrame()
🏃
1:33:17Try unsuccessfully to break on Win32ReloadCode()
🏃
1:33:17Try unsuccessfully to break on Win32ReloadCode()
🏃
1:33:17Try unsuccessfully to break on Win32ReloadCode()
🏃
1:35:18Recompile and break on Win32ReloadCode(), then hit our "User-mode data execution prevention (DEP) violation" before entering OpenGLEndFrame()
🏃
1:35:18Recompile and break on Win32ReloadCode(), then hit our "User-mode data execution prevention (DEP) violation" before entering OpenGLEndFrame()
🏃
1:35:18Recompile and break on Win32ReloadCode(), then hit our "User-mode data execution prevention (DEP) violation" before entering OpenGLEndFrame()
🏃
1:36:15Rerun and find that our breakpoint no longer works
🏃
1:36:15Rerun and find that our breakpoint no longer works
🏃
1:36:15Rerun and find that our breakpoint no longer works
🏃
1:36:45Check build.bat for buggy reloading
📖
1:36:45Check build.bat for buggy reloading
📖
1:36:45Check build.bat for buggy reloading
📖
1:37:40Recompile without RemedyBG running, step on to OpenGLEndFrame() and find the Renderer to be invalid
🏃
1:37:40Recompile without RemedyBG running, step on to OpenGLEndFrame() and find the Renderer to be invalid
🏃
1:37:40Recompile without RemedyBG running, step on to OpenGLEndFrame() and find the Renderer to be invalid
🏃
1:40:47Build afresh, run the game and rebuild, and step to Win32ReloadCode() to find that the Platform pointer is already NULL
🏃
1:40:47Build afresh, run the game and rebuild, and step to Win32ReloadCode() to find that the Platform pointer is already NULL
🏃
1:40:47Build afresh, run the game and rebuild, and step to Win32ReloadCode() to find that the Platform pointer is already NULL
🏃
1:42:25platform_renderer.TotalFramebufferMemory // TODO(casey): Reenable this!
1:42:25platform_renderer.TotalFramebufferMemory // TODO(casey): Reenable this!
1:42:25platform_renderer.TotalFramebufferMemory // TODO(casey): Reenable this!
1:43:04Continue to step through Win32LoadCode() to find that it pushes handmade_temp.dll through Win32BuildEXEPathFileName()
1:43:04Continue to step through Win32LoadCode() to find that it pushes handmade_temp.dll through Win32BuildEXEPathFileName()
1:43:04Continue to step through Win32LoadCode() to find that it pushes handmade_temp.dll through Win32BuildEXEPathFileName()
1:43:36Augment win32_loaded_code with TransientDLLName for Win32LoadCode() to use
1:43:36Augment win32_loaded_code with TransientDLLName for Win32LoadCode() to use
1:43:36Augment win32_loaded_code with TransientDLLName for Win32LoadCode() to use
1:47:29Build afresh, run the game and rebuild, to still hit the "User-mode data execution prevention (DEP) violation"
🏃
1:47:29Build afresh, run the game and rebuild, to still hit the "User-mode data execution prevention (DEP) violation"
🏃
1:47:29Build afresh, run the game and rebuild, to still hit the "User-mode data execution prevention (DEP) violation"
🏃
1:48:12Continue to step through Win32LoadCode(), inspect the TempDLLName and realise that it always fails to copy once
1:48:12Continue to step through Win32LoadCode(), inspect the TempDLLName and realise that it always fails to copy once
1:48:12Continue to step through Win32LoadCode(), inspect the TempDLLName and realise that it always fails to copy once
1:50:16Fix Win32LoadCode() to increment TempDLLNumber before every attempt to Copy
1:50:16Fix Win32LoadCode() to increment TempDLLNumber before every attempt to Copy
1:50:16Fix Win32LoadCode() to increment TempDLLNumber before every attempt to Copy
1:51:44Continue to step through Win32LoadCode() and on through OpenGLEndFrame(), to hit our "User-mode data execution prevention (DEP) violation" on glBindBuffer()
1:51:44Continue to step through Win32LoadCode() and on through OpenGLEndFrame(), to hit our "User-mode data execution prevention (DEP) violation" on glBindBuffer()
1:51:44Continue to step through Win32LoadCode() and on through OpenGLEndFrame(), to hit our "User-mode data execution prevention (DEP) violation" on glBindBuffer()
1:53:40Find that our RemedyBG breakpoint issue is unresolved
🏃
1:53:40Find that our RemedyBG breakpoint issue is unresolved
🏃
1:53:40Find that our RemedyBG breakpoint issue is unresolved
🏃
1:54:19Remove the *temp.dll files
🗹
1:54:19Remove the *temp.dll files
🗹
1:54:19Remove the *temp.dll files
🗹
1:54:38Run and rebuild the game, watching the *temp.dll files be created
🏃
1:54:38Run and rebuild the game, watching the *temp.dll files be created
🏃
1:54:38Run and rebuild the game, watching the *temp.dll files be created
🏃
1:55:52Get a new dotahero
🗹
1:55:52Get a new dotahero
🗹
1:55:52Get a new dotahero
🗹
1:56:43Ponder RemedyBG's breakpoint confusion
🗩
1:56:43Ponder RemedyBG's breakpoint confusion
🗩
1:56:43Ponder RemedyBG's breakpoint confusion
🗩
1:57:46Wonder why we're jumping to an unknown function
🗩
1:57:46Wonder why we're jumping to an unknown function
🗩
1:57:46Wonder why we're jumping to an unknown function
🗩
1:58:17Run, rebuild, step in to OpenGLEndFrame() and inspect the OpenGL struct
🏃
1:58:17Run, rebuild, step in to OpenGLEndFrame() and inspect the OpenGL struct
🏃
1:58:17Run, rebuild, step in to OpenGLEndFrame() and inspect the OpenGL struct
🏃
1:59:51Remember that our OpenGL functions reside in a dll-local table, and must be reinitialised
🗩
1:59:51Remember that our OpenGL functions reside in a dll-local table, and must be reinitialised
🗩
1:59:51Remember that our OpenGL functions reside in a dll-local table, and must be reinitialised
🗩
2:01:32Augment open_gl with our OpenGL functions, renaming OpenGLGlobalFunction() to OpenGLFunction()
2:01:32Augment open_gl with our OpenGL functions, renaming OpenGLGlobalFunction() to OpenGLFunction()
2:01:32Augment open_gl with our OpenGL functions, renaming OpenGLGlobalFunction() to OpenGLFunction()
2:08:23Make our OpenGL context available to all OpenGL-calling functions, and Win32InitOpenGL() initialise our OpenGL functions
2:08:23Make our OpenGL context available to all OpenGL-calling functions, and Win32InitOpenGL() initialise our OpenGL functions
2:08:23Make our OpenGL context available to all OpenGL-calling functions, and Win32InitOpenGL() initialise our OpenGL functions
2:17:04Make PlatformOpenGLSetVSync() initialise wglSwapIntervalEXT specially
2:17:04Make PlatformOpenGLSetVSync() initialise wglSwapIntervalEXT specially
2:17:04Make PlatformOpenGLSetVSync() initialise wglSwapIntervalEXT specially
2:19:27Run and rebuild the game successfully
🏃
2:19:27Run and rebuild the game successfully
🏃
2:19:27Run and rebuild the game successfully
🏃
2:20:21Prevent OpenGLEndFrame() from setting the glClearColor to 1, 0, 1, 1
2:20:21Prevent OpenGLEndFrame() from setting the glClearColor to 1, 0, 1, 1
2:20:21Prevent OpenGLEndFrame() from setting the glClearColor to 1, 0, 1, 1
2:20:43Hot-reload the game successfully
🏃
2:20:43Hot-reload the game successfully
🏃
2:20:43Hot-reload the game successfully
🏃
2:20:57Make OpenGLEndFrame() halve the RenderWidth
2:20:57Make OpenGLEndFrame() halve the RenderWidth
2:20:57Make OpenGLEndFrame() halve the RenderWidth
2:21:16Hot-reload the game successfully
🏃
2:21:16Hot-reload the game successfully
🏃
2:21:16Hot-reload the game successfully
🏃
2:21:25Prevent OpenGLEndFrame() from halving the RenderWidth
2:21:25Prevent OpenGLEndFrame() from halving the RenderWidth
2:21:25Prevent OpenGLEndFrame() from halving the RenderWidth
2:21:30Hot-reload the game successfully
🏃
2:21:30Hot-reload the game successfully
🏃
2:21:30Hot-reload the game successfully
🏃
2:21:53Q&A
🗩
2:21:53Q&A
🗩
2:21:53Q&A
🗩
2:22:46longboolean Q: A lighting question (but it also has applications in meteorology): Do you know of any algorithms to compute "shadow" or "no shadow" for all future February 2nds (assuming Gregorian calendar), or are we simply stuck with the Punxsutawney Phil algorithm, the current but rather limited state of the art?
🗪
2:22:46longboolean Q: A lighting question (but it also has applications in meteorology): Do you know of any algorithms to compute "shadow" or "no shadow" for all future February 2nds (assuming Gregorian calendar), or are we simply stuck with the Punxsutawney Phil algorithm, the current but rather limited state of the art?
🗪
2:22:46longboolean Q: A lighting question (but it also has applications in meteorology): Do you know of any algorithms to compute "shadow" or "no shadow" for all future February 2nds (assuming Gregorian calendar), or are we simply stuck with the Punxsutawney Phil algorithm, the current but rather limited state of the art?
🗪
2:23:28alexkelbo Q: Sorry, I missed it. What did you use TensorFlow for?
🗪
2:23:28alexkelbo Q: Sorry, I missed it. What did you use TensorFlow for?
🗪
2:23:28alexkelbo Q: Sorry, I missed it. What did you use TensorFlow for?
🗪
2:23:44vaualbus Q: Is not faster to load shader from file and change them on the fly when the file is modified?
🗪
2:23:44vaualbus Q: Is not faster to load shader from file and change them on the fly when the file is modified?
🗪
2:23:44vaualbus Q: Is not faster to load shader from file and change them on the fly when the file is modified?
🗪
2:24:16internationalizationist Q: Khronos org says that we should load procs by wglGetProcAddress and, if it fails, then load library opengl32.dll and GetProcAddress. In which situations is it relevant? Or I missed something?
🗪
2:24:16internationalizationist Q: Khronos org says that we should load procs by wglGetProcAddress and, if it fails, then load library opengl32.dll and GetProcAddress. In which situations is it relevant? Or I missed something?
🗪
2:24:16internationalizationist Q: Khronos org says that we should load procs by wglGetProcAddress and, if it fails, then load library opengl32.dll and GetProcAddress. In which situations is it relevant? Or I missed something?
🗪
2:24:46maliusarth Q: Would you recommend the OpenGL struct function table for versioned C libs?
🗪
2:24:46maliusarth Q: Would you recommend the OpenGL struct function table for versioned C libs?
🗪
2:24:46maliusarth Q: Would you recommend the OpenGL struct function table for versioned C libs?
🗪
2:25:16kniffel5 Q: If you wanted to implement Stereoscopic 3D, are there OpenGL functions specifically for that (making it easier) or would you have to do everything manually?
🗪
2:25:16kniffel5 Q: If you wanted to implement Stereoscopic 3D, are there OpenGL functions specifically for that (making it easier) or would you have to do everything manually?
🗪
2:25:16kniffel5 Q: If you wanted to implement Stereoscopic 3D, are there OpenGL functions specifically for that (making it easier) or would you have to do everything manually?
🗪
2:27:09thetamiel Q: You mentioned there being no standard way to interface with graphics and the politics behind it. Do you see a specific reason why console manufacturers couldn't push hardware vendors for standardisation and have that standard bleed out into general computing?
🗪
2:27:09thetamiel Q: You mentioned there being no standard way to interface with graphics and the politics behind it. Do you see a specific reason why console manufacturers couldn't push hardware vendors for standardisation and have that standard bleed out into general computing?
🗪
2:27:09thetamiel Q: You mentioned there being no standard way to interface with graphics and the politics behind it. Do you see a specific reason why console manufacturers couldn't push hardware vendors for standardisation and have that standard bleed out into general computing?
🗪
2:28:19the_8th_mage Q: If it matters, I once implemented a network in C++ from TensorFlow and it was faster single threaded by order of magnitude compared to the 28 core multithreaded TensorFlow implementation
🗪
2:28:19the_8th_mage Q: If it matters, I once implemented a network in C++ from TensorFlow and it was faster single threaded by order of magnitude compared to the 28 core multithreaded TensorFlow implementation
🗪
2:28:19the_8th_mage Q: If it matters, I once implemented a network in C++ from TensorFlow and it was faster single threaded by order of magnitude compared to the 28 core multithreaded TensorFlow implementation
🗪
2:28:57said6289 handmade_hero Is the same OpenGL context being used after renderer reload?
🗪
2:28:57said6289 handmade_hero Is the same OpenGL context being used after renderer reload?
🗪
2:28:57said6289 handmade_hero Is the same OpenGL context being used after renderer reload?
🗪
2:29:54maliusarth Q: For APIs with the requirement of being downwards compatible and introducing breaking changes is only allowed in a second API struct
🗪
2:29:54maliusarth Q: For APIs with the requirement of being downwards compatible and introducing breaking changes is only allowed in a second API struct
🗪
2:29:54maliusarth Q: For APIs with the requirement of being downwards compatible and introducing breaking changes is only allowed in a second API struct
🗪
2:32:03ormone88 Q: Tomorrow is my first day of work at a AAA company. How do I jump into a huge codebase (UE4) that I know very little of? I am a little bit intimidated also by the "object-orientedness" of the engine
🗪
2:32:03ormone88 Q: Tomorrow is my first day of work at a AAA company. How do I jump into a huge codebase (UE4) that I know very little of? I am a little bit intimidated also by the "object-orientedness" of the engine
🗪
2:32:03ormone88 Q: Tomorrow is my first day of work at a AAA company. How do I jump into a huge codebase (UE4) that I know very little of? I am a little bit intimidated also by the "object-orientedness" of the engine
🗪
2:37:21shredz7 Q: Have you heard of IPFS? I know you don’t like web stuff, but IPFS seems to be redesigning the web to be content-addressed and simpler... It doesn't get rid of HTML and all that crap but I think it’s a step forward. What do you think of it?
🗪
2:37:21shredz7 Q: Have you heard of IPFS? I know you don’t like web stuff, but IPFS seems to be redesigning the web to be content-addressed and simpler... It doesn't get rid of HTML and all that crap but I think it’s a step forward. What do you think of it?
🗪
2:37:21shredz7 Q: Have you heard of IPFS? I know you don’t like web stuff, but IPFS seems to be redesigning the web to be content-addressed and simpler... It doesn't get rid of HTML and all that crap but I think it’s a step forward. What do you think of it?
🗪
2:38:12geekpanther IPFS: Interplanetary file system. A decentralized file system which is Hash Based Mapping on the Nodes on the network for file lookup rather than the location of a file
🗪
2:38:12geekpanther IPFS: Interplanetary file system. A decentralized file system which is Hash Based Mapping on the Nodes on the network for file lookup rather than the location of a file
🗪
2:38:12geekpanther IPFS: Interplanetary file system. A decentralized file system which is Hash Based Mapping on the Nodes on the network for file lookup rather than the location of a file
🗪
2:41:46geekpanther Take a look: IPFS1
🗪
2:41:46geekpanther Take a look: IPFS1
🗪
2:41:46geekpanther Take a look: IPFS1
🗪
2:43:49geekpanther Yeah, There's more to it. Take a look at the Whitepaper.2 It is cool
🗪
2:43:49geekpanther Yeah, There's more to it. Take a look at the Whitepaper.2 It is cool
🗪
2:43:49geekpanther Yeah, There's more to it. Take a look at the Whitepaper.2 It is cool
🗪
2:47:40ginger_bill handmade_hero Are they even trying to solve that problem? It appears they are trying to make an extremely public file system
🗪
2:47:40ginger_bill handmade_hero Are they even trying to solve that problem? It appears they are trying to make an extremely public file system
🗪
2:47:40ginger_bill handmade_hero Are they even trying to solve that problem? It appears they are trying to make an extremely public file system
🗪
2:48:26ambiguous_panda Q: I think that no single node on the network has 100% of a file, so you can only request an incomplete fragment, which will make it harder for the node hosting it to guess what it is
🗪
2:48:26ambiguous_panda Q: I think that no single node on the network has 100% of a file, so you can only request an incomplete fragment, which will make it harder for the node hosting it to guess what it is
🗪
2:48:26ambiguous_panda Q: I think that no single node on the network has 100% of a file, so you can only request an incomplete fragment, which will make it harder for the node hosting it to guess what it is
🗪
2:50:56internationalizationist Q: (Again off-topic) Do you know some (good) resources that explains how the internet works? You said that it cannot be used as a backbone of internet, but I don't understand why
🗪
2:50:56internationalizationist Q: (Again off-topic) Do you know some (good) resources that explains how the internet works? You said that it cannot be used as a backbone of internet, but I don't understand why
🗪
2:50:56internationalizationist Q: (Again off-topic) Do you know some (good) resources that explains how the internet works? You said that it cannot be used as a backbone of internet, but I don't understand why
🗪
2:54:54Close it down
🗩
2:54:54Close it down
🗩
2:54:54Close it down
🗩