Releases: electronicarts/gigi
Releases · electronicarts/gigi
v1.01.7
Multimedia Edition!
WebCam in Viewer
- Specify an imported texture to receieve webcam stream. View ->WebCam Settings in viewer to specify the texture. See "SimpleWebcam" demo in the browser. Written by Alex Lindsay!
Microphone in Viewer
- In the viewer, specify an imported buffer to recieve audio input from mic. View -> Audio Settings in viewer to control it. See "AudioInputOutput" demo in browser.
Speakers in Viewer
- In the viewer, specify an imported buffer to hold the audio output. View -> Audio Settings in viewer to control it. See the various audio demos in the browser: BezierNoteSlide, KarplusStrong, SimpleAudio, SimpleWaveForms, SoundOrbit.
Other
- FontAwesome added to the code base and a few buttons improved with icons in editor, browser, viewer
Browser
- Fixed a crash that happened sometimes when viewing thumbnails
Editor:
- Cache some data lists to improve performance with large graphs
Viewer:
- The copy / copyback work done for the editor is scoped in renderdoc & pix captures to show what it is more easily
- Don't error on zero dispatch size if the node condition isn't met
v1.01.6
- NVAPI support (Martin Mittring)
- HLSLTime to get fine grained timings in shader code (See Unit Test
UnitTests/HLSLTime/HLSLTime.gg(Martin Mittring) - Assert renamed to GigiAssert
- Unit test code gen uses the python built into Gigi viewer instead of relying on a python being on the path
v1.01.5
Summary of Big Items:
- Indirect Draw (By Craig Peters)
- AMD Fidelity FX Upscaler and Frame Generation
- Variable Aliases
General:
- Added AMD FidelityFX upscaler as a node in the node graph
- Added AMD FidelityFX frame generation as a viewer setting
- For an example: See Techniques\UnitTests\AMD\Upscale.gg or "AMD FSR" technique in the Gigi browser
- Shader variable aliases - a shader can specify it wants information. you can specify per node which variable gives that information. Easier to re-use the same shader with different variables controlling settings for different nodes. Example: Techniques\UnitTests\Compute\VariableAliases.gg.
- Use variables to control buffer view begin and size. Example: Techniques\UnitTests\Buffers\buffertest_viewOffsetCS_Vars.gg
- Fixed a bug with draw node shaders not always getting the defines specified on the node.
- Fixed a horrifying bug with hash_combine(a,b) which didn't use b at all. Luckily low impact.
- Added a "ValueOrVariable" paradigm which lets you more easily put fields on nodes which can be edited in the editor and/or exposed to the user as a variable.
- Indirect Draw (Craig Peters) Example: Techniques\UnitTests\Raster\IndirectDraw.gg.
- png optimization (Jakub Marcowski)
Editor:
- indirect pins are hidden by default now to be less confusing. On the node you can specify that you want indirect and then they will appear. (Martin Mittring)
- Hover over node pins to see tooltips
- Optional pins are now shown as grey diamonds
- Made a "+" button for variable references, to quickly add a new variable for the reference, and view it in the variable definition window.
- Fix a bug where double clicking a node didn't always open the shader files due to file path nuances.
- shrank some UI elements horizontally that didn't need to be so wide.
Unreal Code Gen:
- Fixed shader filename strings not being properly escaped sometimes
- Added support for RGBA16f and RGBA32F texture formats
Viewer:
- No longer require MSAA 4x support to run the viewer. This made the viewer not run for some people in some situations. The viewer gracefully handles the missing support and launches now.
- new system variables: CameraJitterRaw, CameraUp, CameraLeft, CameraForward vectors.
- Fixed a bug with indirect pins in subgraphs.
- Reversed Z infinite depth support added to camera settings
- SRVs bumped up to 16K from 4K
- Report an error when a shader loaded texture can't load, instead of silent failure
- Various UI improvements (Martin Mittring)
- Can manually enter values for mouse click pixel location, to more easily investigate specific pixels (Vishnu Sujith Kurup)
- When vsync is off it now allows tearing, which makes for ridiculously high FPS and more accurate profiling times
- If you drag a .dds file onto the viewer for viewing, it will now consider it possibly being RGBA32 float too, instead of only block compressed formats.
v1.0.4
MSAA
- Added by Martin Mittring.
- Texture nodes let you specify Texture2DMS as a dimension, rasterize with the texture, then resolve it in a compute shader.
- To see it in action, check out the unit test: Techniques\UnitTests\Raster\simpleRasterMSAA.gg
- Viewer only, not supported by any code generators yet.
UE 5 Code Generation
- The basics of compute and rasterization are working, but many features remain to be implemented.
- Details of what is supported: https://github.com/electronicarts/gigi/blob/main/readme/platformSupport.md
- Pull requests to improve the code generation are very much welcomed!
- We also need a way to run all the unit tests as easily as possible, like we can with the viewer, dx12 and webgpu, to help make sure this platform stays working.
- See UserDocumentation/UnrealTips for some tips for working with Gigi / Unreal.
v1.0.3
Bugs:
- Shader defines didn't work when using slang - shader defines specified on the shader or node didn't work when using slang. That is fixed now. The same problem happened when specifying a shader entry point on a node, and that is also fixed.
Freatures:
- Buffer Views - Click on a connection line between nodes to specify buffer begin offset and size for a partial view of the buffer. Also thanks to Andrew Steadman for finding and fixing a bug with this and descriptor tables!
- Disallow Duplication - If an output pin forks to a read path and a write path, Gigi will automatically make a copy of the resource at that point for reads to prevent data races. If you know your situation won't have a data race, you can click on a connection line and click "Disallow Duplication" to prevent this copy being made.
- Partial Buffer Copies - When using a copy resource node to copy from a buffer to a buffer, you can specify the source begin offset, the destination begin offset, and how much to copy.
Editor:
- Reroute nodes from Ivar Jönsson, for better virtual cable management. Double click a connection line to get a reroute node.
- Displays more information about dispatch sizes, when all values are constant.
Viewer:
- Render graph window shows inactive nodes as grey, and nodes in an error state in red
Installer:
- no more required reboot after installing the visual studio redistributable.
v1.0.2
Features:
- Variables now have an "onUserChange" setting where you can specify a Boolean variable to be set to true when a user changes the variable. Currently a viewer only feature.
Browser:
- Fixed bug with techniques that lived in the root of their repo, causing a bad sparse checkout
Compiler:
- bool variables are cast to bool when used in shaders now, to avoid warnings about implicit cast from uint to bool.
- fix crash when compiling to webgpu when a shader stage used is not supported.
- fix a crash when a subgraph node ends in a trailing space (problem with windows directories handling trailing spaces)
Viewer:
- BC1 Support (from Randall Rauwendaal)
- Render graph panel shows nodes in red when they are in an error state to help debug problems more easily.
- Fixed a crash when using the installed version of Gigi caused by renderdoc not being told about the directory it should use soon enough, and it trying to write to the directory where the installed exe lived.
- Fixed an bug that disallowed implicit cast between array and non array data types (like uint vs int3).
- Key bindings for camera controls, for non qwerty keyboard users
- You can give a 4x4 geometry transform for imported resources. Useful for scaling geometry or rotating it, to be more appropriate.
- GetAppCommandLine() added to python interface
Editor:
- Hide the condition of subgraph nodes since that isn't implemented.
- Button to copy build log to clipboard.
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