Giter VIP home page Giter VIP logo

porque4k's People

Contributors

apazylbe avatar krmoule avatar olegat avatar robbiesri avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

porque4k's Issues

Validate/project actual constant buffer usage per-frame

Right now, we just allocate 1 MiB per frame (soon to be 4 MiB) of CPU-visible GPU memory in order to push constants via dynamic uniform buffer. This number is totally fabricated. We should validate the actual usage, and pick an amount based on that like sane engineers.

[Checkerboard] Investigate VK_AMD_mixed_attachment_samples to get full depth resolution

With VK_AMD_mixed_attachment_samples, we would be able to get full depth resolution for our checkerboard rendering. We can then use that full-res depth to better inform our checkerboard resolve.

There are outstanding questions about how it interacts with VK_EXT_sample_locations. Using these two extensions together would be required, since the default 4X MSAA sample locations are not suitable for use with checkerboarding.

Upscale delta visualizers

  • Simple image delta (absolute values)
  • Luminance delta (visual significance)
  • Grayscale/intensity delta
  • Absolute values overlaid over grayscale image
  • Texture LOD visualizer

Proper colorspace management

The swapchain is created with VK_FORMAT_B8G8R8A8_UNORM in order to set the STORAGE image usage flag.
The internal renderpasses uses UNORM as well, but should be converted to SRGB, and then have the final compute composite handle the conversion to the correct color space.

Change shader building pipeline

Right now, we use add_custom_command to build shaders. However, add_custom_command doesn't care about dependencies triggering shader compiles (e.g. modifying a header).

I'm not entirely sure what the right solution is here. I was thinking of using add_custom_target, but that just builds all the time, which I don't want either. I don't want to just treat it as HLSL, because I can't control the DXC compiler, and that doesn't work for Ninja. Which maybe isn't a huge deal.

Derive resource bindings instead of hard-coding them

Instead of hand-coding the binding indices, we should be grabbing the info from reflection. We'll have to some app-specific metadata (like this texture should bind to the 'NormalTexture' or whatever), but that's way more maintainable than what we have now

Alternatively, we could use a shared header for the shaders and Vulkan code

Fix CMake CXX_FLAGS usage

Right now we are using

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")

To make sure the GGP VS generator works correctly.

But it should be

set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_EXTENSIONS OFF)

Details here: chaoticbob/CMake#1

Animation control

Right now, all we got it start/stop of the animation. There should be property control + manual manipulation.

Refactor structure initializers

Right now, we follow this pattern in the app code:

VkDeviceCreateInfo device_ci = {
  VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO,
};

To be more clear (and safe), we should do one of these two patterns instead.

VkDeviceCreateInfo device_ci = {
  .stype = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO,
};

VkDeviceCreateInfo device_ci = {};
device_ci .stype = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO;

Add post-processing passes

Ideally some set of common techniques that we could use to interact with the internal and target images

Possible techniques:
Ambient Occlusion
AA
Bloom
Blur
DOF
Tonemap
Grain

Implement TAA

Would likely leverage that infrastructure for a temporal resolve for dynamic scaling

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.