Releases: electronicarts/gigi
Releases · electronicarts/gigi
v1.0.1
WebGPU:
- Extensions are opt-in from the editor now, instead of always being asked for. Helps techniques work on more devices by default.
- Makes boolean variable default values into JavaScript safe values, like it does for floats.
- Does string replacement in shader header files like it does on other platforms - limited to const variables and similar
- Better instructions in the todos about how to load textures
- Imported textures now have a URL box in the HTML instead of requiring you to write JavaScript
- Fixed error reporting when loading textures
Viewer:
- Log window and shader list improvements (thanks Martin!)
- Fix for mesh/amplification shader dispatch logic
Editor:
- Shader resources will show only buffer or texture settings, whichever was chosen for the type
Compiler:
- Better sanitization of identifiers made from node names / variable names / etc. in generated code.
v1.0.0
Summary
- WebGPU Code Generation Support! See UserDocumentation/WebGPU and WebGPU_QuickStartGuide.
- Thank you to Jasper St. Pierre (@magcius) for all the help answering WebGPU questions.
- Thank you to Jacco Bikker (@jbikker) for tinybvh (https://github.com/jbikker/tinybvh), used by Gigi WebGPU for super fast ray tracing
- Thank you to the slang development team for wgsl code generation, and assistance getting it working.
- Cooperative Vector Support! See UserDocumentation/CooperativeVectors.
Browser:
- improved UI/UX a bit.
Compiler:
- code generators now have access to .gguser file to do more for users automatically. Camera params, system variables, etc.
Viewer:
- Set variables now allow type casts for no-op operations.
- editor flag to enable 16 bit types in shaders.
- fixed some edge cases with views in descriptor tables of structured and raw buffers
- fixed all Non sRGB textures being shown as sRGB.
- texture viewing sRGB drop down of: on, off, auto.
- captures saved next to gg file instead of exe, which was a problem for installer.
- option to save vertex information as BVH. Saved in tinybvh format BVH_GPU. Usable by generated WebGPU code or other applications.
- fixed uint16 padding and shader code gen
- no longer needs developer mode enabled to run
Editor:
- Shader resource access is now: read only, read/write and RT scene, instead of SRV, UAV, RTScene.
- It used to only open exact version matches after upgrade logic. Now it will try loading unknown (future) versions and let you know there may be problems.
Martin Mittring:
- recent files lists culled to reasonable size
- file open dialog path improvements.
- AMD RGA Support. In editor, see Settings -> Common for Rga Path and ASIC.
- -device command line parameter to choose which device the viewer uses.
Other:
- added .editorconfig to help coding standards (tab vs spaces etc)
- updated slang, agility sdk, DXC. (what versions?)
- other small bug fixes and features
- fixed missing icon for gigi browser after installation
- installer installs msvc redist
v0.991.2
v0.991.1
v0.991.0
Viewer:
- Disable VRS when not supported (PR#30, Kyle Bostelmann @bostelk)
- Easier interface to reset individual variables to default, and see if they are system variables or not etc (Martin Mittrin)
- Renderdoc updated to 1.37 and renderdoc captures are allowed by default now that renderdoc doesn't block ray tracing initialization.
- Run with -warpadapter to run the viewer using the warp adapter (cpu software rendered). Useful for determinism across platforms/drivers/etc, but doesn't support all of DX12.
- Python function added to set camera FOV. Host.SetCameraFOV(fov)
- Profiler can accumulate frames. Nicer to understand perf when you can E.g. average over 1000 frames with different settings.
Editor:
- Fixed some problems with node connections getting screwed up in the json. Also fixes affected files on open. (PR#29, Jan Werbrouck @Jan300100)
Compiler
- Uint64 / Int64 types added for resource views to make 64 bit atomics easier (Martin Mittring)
- Slang updated from 2024.1.22 to 2025.6.3
- Several slang processing options are available in the editor now to help debug slang shaders
- Using the same subgraph multiple times, and overriding variables with different constants wouldn't work, but now does.
- Fixed a bug with setvars in subgraphs not having their involved variables renamed to the inlined variable names.
v0.99.8
A new build with lots of changes from actual users of Gigi. Thank you for your help, everyone!
Ivar Jönsson:
- Editor: Added group nodes
- Editor: Added a search bar to nodes list and made it into a scrollable window.
- Editor: Added a search bar to all data record windows
- Editor: Added color customization to nodes
- Updated DXC
- Added formats: BGRA8, RG16_Uint and RG32_Uint
- DX12 viewer & code gen: changed shader compiler interfaced, and added more options, like warnings as errors.
Jan Werbrouck:
- replace bunny.obj with a version that has better UVs
- Viewer: Generate normals for obj files that don't have normals.
- Viewer: fix crash when mips is out of bounds
- Model Viewer: Add RemapRanges toggle to visualise negative normals/tangents
- editor bug: shader edit button didn't work if filename missing file extension
William Donnelly:
- Viewer: fix crash when viewing a slice of a 3d texture with z greater than zero and clicking copy to clipboard.
Martin Mittring:
- Made camera unable to flip over backwards.
Christian Deiss:
- Added UserDocumentation/DebuggingGigiWithPix to explain how to do pix captures in Gigi
jgpd:
- Viewer bug: system variables for jittered camera hooked up to non jittered camera due to copy/paste.
Gabriel Kannenberg:
- investigated problem with model viewer tangents. Turns out bunny obj file was bad, so no changes needed. Bunny model was then replaced by Jan Webrouck.
Also:
- Viewer: report an error if pix capture fails
- Viewer: Fix error when chaining indirect pins together sometimes
- Viewer: added "-logdebuglayer" command line to turn this on by default when launching.
- Viewer: adde "-compileshadersfordebug" command line to turn this on by default when launching.
v0.99.7
Editor:
- Fix for the editor freezing: #11
Compiler:
- Output pins going to multiple input pins will make a copy for read access when needed now, and will warn of a possible race condition if multiple output paths lead to writes.
Browser:
- Make log hidden by default to see more search results.
Viewer:
- Fix crash when loading an obj file without uvs
- Better error messages when viewer can't make descriptor tables.
- The jittered camera was jittering within plus or minus a quarter of a pixel instead of a half
- better error reported when vertex shader inputs don't match up with vertex buffer definition.
- Copying buffer to buffer is allowed between different structs if they have the same field types in the same order.
v0.99.6
GigiBrowser:
- Search through a library of techniques, and submit your own to share. Sharing instructions: https://github.com/electronicarts/gigi/blob/main/readme/BrowserSharing.md
- Most techniques moved out of techniques folder, now accessible via the browser.
- Installer dropped to 199MB, down from 564MB
Viewer:
- Mouse region radius shows average pixel value of a region with a definable radius
- selected pixel or region is highlighted
- BC4 and BC5 save / load / use / view to go with BC6 and BC7 previously
- Better Errors when compute shader node can't initialize
- drag and drop .ply files to view them. Assumes first 3 elements are XYZ and renders them as points.
- Drag and drop a model onto viewer now has a "PlasticShaded" mode to see a model more naturally (thanks Patrick Anderson!)
Python Interface:
- save images. 2d, 2darray, 3d, cube maps. With or without mips. variety of formats: png, bc4, bc5, bc6, bc7, exr, hdr, csv, binary.
- need to set up a readback, but then can call these functions. To set up readback call host functions: SetWantReadback, RunTechnique, WaitOnGPU.
Editor:
- Drag and drop .gg files to open them
- Generate code relative to .gg file, not GigiEdit.exe
Bug Fixes:
- Copying two buffers of the same size would fail if one was padded differently due to usage flags
- mouse wheel to scroll window no longer changes which pixel is selected
- setting an imported resource filename to empty string would try to use that as a relative path and error on not being able to load it
- sanitize struct references - came up as a problem with being unable to find structs used in subgraphs.
- fix build error due to missing winpix dll
- fix a crash when loading an obj that didn't have normals
DX12 Code Generator:
- more help for imported resources setup, and a primary output to automatically copy to the render target.
- support for custom gigi string replacement tokens, with values specified in editor. Used for CopyrightHeader.
- copy resource node wasn't generating perf markers.
DX12 Unit Tests:
- make it easier to run a subset of the tests
- fixed bug with it not reporting all test results sometimes
v0.99.5
Big refactor of texture loading and saving:
- 2D texture arrays, and 3d textures can be saved and loaded, with or without mips.
- In a variety of formats, including BC6 / BC7 (dds) and raw binary.
Drag and Drop Images and Models Onto the Viewer!
- it opens images and models in an appropriate minimal render graph for them which allows you to view the assets, do analysis, or change the no-op compute shaders to modify the asset, and then save out the results.
- The model viewer by default shows the normals of a mesh, but you can change what is being viewed using the drop down. Only FBX and OBJ are supported right now.
- This should be helpful for seeing what is in a file, particularly in model files, or dds fles, which are hard to see inside otherwise.
- Editor UI improvemens
- more camera variable access from shaders
- globally coherent flag on UAVs in shader resource declarations in editor
Adam Badke:
- Resource destruction crash fix (Yay!)
- shader names now show up in debuggers instead of "hlsl.hlsl"
- Added command line option to viewer to compile shaders with debug info
- Updated a couple lines in the tutorial
Breaking Changes:
- Python function Host.SetWantReadback used to take array and mip index. Now those parameters are on Host.Readback instead.
- The interface for loading a binary texture in the viewer has changed, and it doesn't automatically update to the new fields.
- Python functions for setting imported binary texture parameters changed too.
Other:
- WinPixEventRuntime updated to latest version.
- You can now raytrace against dynamic vertex buffers. It used to disallow raytracing against a vertex buffer which was written to, but that is allowed now, and the BLAS/TLAS is updated accordingly.
- You can copy any image to the clipboard now. It will convert to RGBAU8 sRGB and put that into the clipboard.
- DX12 code gen imgui ui cosmetic improvements.
- DX12 application code gen now includes a camera class to make it easier to get running with generated code. In the future the code generator will use the viewer state in the .gguser file to make the generated code work more like the viewer out of the box - loading assets, setting up variables and the camera etc.
The texture refactor in particular touched a lot of code. The unit tests are running and succeeding, but if you hit any problems, let us know!
v0.99.4
- Fixed tangent calculations in the FBX loader path in the viewer.
- Added Techniques/DataViewers/ModelViewer.gg and TextureViewer.gg to be quick viewers that also let you modify the data in a compute shader and then resave. In the future when you drag a model or texture onto the gigi viewer it will open these graphs by default to allow quick viewing of asset files.
- Updated Agility SDK to 1.614.1
- Added build number to displayed version number in editor, viewer, compiler.
- DX12 code gen fixes and improvements
- -nopixcapture viewer option to disable pix capturing. Currently needed when using AMD GPU Reshape (https://gpuopen.com/gpu-reshape/)
- fixed a problem with RT acceleration structure scratch buffer not being large enough sometimes (viewer and DX12 codegen)