Git Product home page Git Product logo

vulkansc-pcutil's Introduction

Vulkan SC Pipeline Cache Utility

Overview

The Vulkan SC Pipeline Cache Utilty provides header-only utility implementations for reading (pcreader.hpp) and writing (pcwriter.hpp) Vulkan SC-specific pipeline cache files.

These are intended to be included in other projects as needed in order to ensure correct reading and writing of the pipeline cache header.

Expected use cases:

  • pcreader.hpp

    • IHV driver to facilitate parsing the pipeline cache header
    • Applications (including CTS) to retrieve pipeline entry information (identifier, poolEntrySize)
    • validation layers and tools to extract Json and shader code
  • pcwriter.hpp

    • offline pipeline cache compiler to facilitate writing the header information to the pipeline cache

Usage

Include the appropriate header implementation in your project.

These are written as C++ 11 headers, which assume the relevant headers are already included.

See pipeline.cpp for examples of minimal usage and some basic self-tests.

PC Reader

The PC Reader utility performs no dynamic memory allocations.

It makes use of the assert and memcmp standard library functions. If a user of the library wishes to disable asserts or provide an alternative memcmp implementation this can be done by setting the VKSC_ASSERT and VKSC_MEMCMP macros before including pcreader.hpp.

PC Writer

The PC Writer utility performs dynamic memory allocations using the standard new and delete array operators.

It also makes use of the assert and memcpy standard library functions. If a user of the library wishes to disable asserts or provide an alternative memcpy implementation this can be done by setting the VKSC_ASSERT and VKSC_MEMCPY macros before including pcwriter.hpp.

vulkansc-pcutil's People

Contributors

dgkoch avatar jeffbolznv avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

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

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.