Skip to content

Releases: electronicarts/gigi

v1.0.4

08 Sep 15:05
b788cbc
Compare
Choose a tag to compare

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

18 Aug 16:05
3f67206
Compare
Choose a tag to compare

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

28 Jul 17:44
a7f705b
Compare
Choose a tag to compare

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

23 Jun 21:11
b020517
Compare
Choose a tag to compare

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

17 Jun 18:34
b5eb431
Compare
Choose a tag to compare

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

12 May 16:44
c1ec1e1
Compare
Choose a tag to compare

Viewer Crash Fix:
This fixes a crash when viewing slices of 2d texture arrays.
The logic was written such that it worked correctly for 3d volume textures, but would read outside of valid memory for 2d texture arrays (including cube maps)

v0.991.1

16 Apr 17:01
07db465
Compare
Choose a tag to compare
  1. Fixes shader file copies not working in subgraphs.
  2. Viewer shows textures with clamp instead of repeat.
  3. Adds renderdoc.dll to binaries and installer (Issue #32)

v0.991.0

11 Apr 22:37
d6602f8
Compare
Choose a tag to compare

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

06 Mar 19:40
fd4315a
Compare
Choose a tag to compare

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

10 Feb 22:15
Compare
Choose a tag to compare

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.