Skip to content

Releases: electronicarts/gigi

v0.99.5

19 Dec 17:47
Compare
Choose a tag to compare

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.

@IvarPD:

  • 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

27 Nov 20:26
Compare
Choose a tag to compare
  • 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)

v0.99.3

22 Nov 16:45
Compare
Choose a tag to compare
  • Using multiple ray gen nodes in a graph with different root signatures is ok now.
    • It used to throw all ray tracing shaders into the shader table which made problems when there were incompatible root signatures inolved.
    • Now it only includes the shaders actually used by the ray gen node when making a shader table for that node.
  • You can use multiple miss shaders in a ray gen node now.
    • The lookup function for translating miss shader names to indices had broken logic.
  • @IvarPD
    • Updated OpenFBX and improved the FBX importer to acknowledge multiple materials in a single mesh.
    • If you run the viewer with "-renderdoc", a renderdoc capture button shows up. Disabled by default because this disables raytracing.

v0.99.2

08 Oct 22:05
Compare
Choose a tag to compare

Shader asserts are in. Thanks Alexey Gladkov aka @Rewlion!
Example: /*$(Assert: i < 5, "i was %f", i)*/
See UserDocumentation/GigiShaders_Documentation for more info.

Functionality:

  • Set Variables have support for min and max
  • Subgraph loops can use CONSTANT variables for loop count. Dynamic variable support coming later.

Compiler:

  • Better error messaging when subgraphs fail to inline. Says what the problem is.
  • Large graphs were having slow downs due to ReferenceFixupVisitor scanning the graph too deeply too often. A visited flag cleaned this up.

Viewer:

  • Variables can have a UI scope to group them better in the UI
  • Conditional Copy Resource nodes now say whether their condition is true or false in the render graph window.
  • Better protection against using bad formats for depth textures
  • Better explanation when a texture can't be created (like, when it has an invalid size specified)
  • New snapshots interface to be able to save and load cameras, variable values, imported resource settings, or what window is being viewed. Generalizes a couple pre-existing features that needed more functionality.

Techniques:

  • GigiJam2024 techniques added
  • A depth of field comparison demo at Techniques/PostProcessing/DepthOfField/dof_demo.gg

v0.99.1

27 Aug 18:19
Compare
Choose a tag to compare

Quality of life updates from feedback after public release

Thanks for the feedback Morten!

  • select node when created
  • reminder to save in tutorial, and to build all projects
  • Make editor say "Default" not "Dflt"
  • PDF versions of docx files
  • A/B button to toggle between last 2 viewed resoruces
  • zoom to fit button

Also:

  • Install to program files, not program files (x86)
  • no imgui demo or struct parsing demo menu options in release
  • vscyn off in same submenu as sync interval
  • improve create node menu

v0.99.0

21 Aug 17:24
Compare
Choose a tag to compare

First public release!