Giter Club home page Giter Club logo

pyramid's Introduction

Pyramid

Pyramid is a free, open GUI tool for offline shader validation and analysis. The UI takes HLSL or GLSL as input, and runs them through various shader compilers and static analyzers.

Here is Pyramid, showing HLSL shader compiled and disassembled for AMD's GCN, and a GLSL shader compiled and disassembled for PowerVR 6 (click for full-size image):

AMD GCN from HLSL PowerVR disassembly from GLSL

Currently, Pyramid supports these tools:

All the above tools are included under bin/ folder for convenience. These are all publicly available binaries, but I do not own them, maintain them, and am not responsible for them. If you like you can use the Options screen to point Pyramid at different versions of the tools.

Pyramid is intended to eventually support arbitrary languages and glue together tools and disassemblers from all over the graphics world.

IHVs: You want developers scrutinizing the ISA for your GPUs. You know you do :) I will work with you to incorporate your disassemblers into this tool. I am willing to jump through hoops to make this happen, just tell me what I need to do.

Obtaining Pyramid

The best way to obtain a copy is to ask github to download a zip of the repository. The bin directory will be updated periodically with an up to date binary.

Pyramid is built against .NET framework 4.5 and runs on Windows. If you don't have it, you need to go get it. Otherwise, just put the contents of bin wherever you like, there is no installer.

Pyramid will create a configuration file under AppData\Local\Pyramid. At runtime, it will also create and delete temporary files in this location. Apart from that, there are no other changes made to the system. In particular, there is no registry nonsense.

Pyramid is distributed as is. There is no warranty of any kind. I will not guarantee timely support, but I will be happy to accept bug fixes, patches, or contributions. License is GPL.

You may send constructive feedback to: [email protected]

Building it Yourself

Due to my use of submodules, downloading a zip will not get you the full source.

The best way to obtain the full source is to install git, open a shell, and type:

git clone --recurse https://github.com/jbarczak/Pyramid

This will ensure that all of the submodules are downloaded. github does not include submodules when you download a zip.

I use and recommend MSysGit: https://msysgit.github.io/

Pyramid was developed using VC++ 2013 express edition (Desktop). It runs correctly on my machine (Windows 8.1 with VC++ express installed).

The build products will be copied from src/bin into bin on each compile.

By default, Pyramid uses relative paths to look for all of the external binaries. For debugging, it's best to point the working directory at bin so that they will be found. Alternatively, you can use the options menu to replace the paths with absolutes.

pyramid's People

Contributors

jbarczak avatar aras-p avatar michaelkvance avatar waykohler avatar

Stargazers

Koopa avatar Tommy avatar Martin Charles avatar  avatar  avatar sindney avatar Brynjard Øvergård avatar Isle avatar asqqwwd avatar deviancekr avatar 久绊A avatar Adnan Ahmed avatar Grant Johnson avatar Sylve Renault avatar Vladislav Kantaev avatar Yudong Han avatar  avatar Andrew Bell avatar CaptainLuft avatar Artem Drach avatar  avatar Vincent Hébert avatar Jakub Piotr Cłapa avatar  avatar Kyle Harrison avatar Conscat avatar Tin Švagelj avatar  avatar Tanya avatar 鲨鲨 avatar Alex Vorontcov avatar Antoine Karcher avatar flyc022 avatar Luobin Wang avatar Patricio Gonzalez Vivo avatar  avatar  avatar L05 avatar Cameron avatar Oleg Pavlov avatar Gareth Francis avatar Carsten Høyer avatar Konstantin Khomyakov avatar Second Datke avatar David Ringo avatar  avatar Marek Knápek avatar abdul dakkak avatar 	 avatar  avatar  avatar Chen Tao avatar Mehrdad Mehralian avatar Ken Hu avatar  avatar  avatar Chad Layton avatar Samuel Mott avatar  avatar João Carlos Becker avatar Borislav Stanimirov avatar jages avatar Ali avatar  avatar Michael Kelley avatar  avatar Andrew O'Connor avatar Andrew H. Cox avatar Florian Uhde avatar Aiekick avatar  avatar shenzhou avatar Daniel Zalega avatar James0124 avatar Vlad Abadzhiev-Jahn avatar Chris Reid avatar  avatar Tony Kao avatar Nick Verigakis avatar  avatar  avatar Lumina Wang avatar YangJun avatar Alexandre Larouche avatar Lava Block avatar Sergey Makeev avatar Alain Galvan avatar  avatar Mohamed Saher avatar Syntax avatar An Yan avatar Pablo Delgado avatar  avatar Daniel Limberger avatar Ethan avatar Sam Serrels avatar mabaro avatar Simon Moos avatar Scott Pillow avatar  avatar

Watchers

NotKyon avatar Claudia Doppioslash avatar Márcio Laubstein avatar Jing Zhang avatar Graham Wihlidal avatar garric avatar David Sena avatar glcolor avatar Michael Marks avatar  avatar CANTENOT Thierry avatar Shane Calimlim avatar  avatar BenSan avatar Martin Ericsson avatar Özgür Cerlet avatar  avatar  avatar

pyramid's Issues

Building on Linuxes?

Is it possible to use Wine/Mono and Clang to compile Pyramid on a Linux-based operating system? I don't compile much Windows software, especially not C# software, so I'm not sure where to start with this, if it's hypothetically possible. I assume MinGW won't work, but Clang supposedly has decent compatibility with MSVC.

got crashed for pow function

i have test a program
float getpow(float x, float y)
{
return pow(x,y);
}

float4 main(float3 tex:TEXCOORD0) : SV_TARGET { return getpow(tex.x, tex.y).xxxx; }

but the Pyramid got crashed
change to float4 main(float3 xx:TEXCOORD0) : SV_TARGET { return getpow(1, 6).xxxx; } is OK.

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.