diff --git a/Changelog.md b/Changelog.md new file mode 100644 index 0000000..b5ab333 --- /dev/null +++ b/Changelog.md @@ -0,0 +1,13 @@ +# picasso Changelog + +# v2.0 + +- (**Breaking change**) Command line format changed. +- Added support for assembling multiple shaders (DVLEs) into a single SHBIN. +- Added new directives: `.entry`, `.nodvle`, `.setf`, `.seti`, `.setb`. +- Added auto-detection of inverted forms of opcodes. (Explicitly using `dphi`, `sgei`, `slti` and `madi` is now deprecated) +- Several miscellaneous bug fixes. + +# v1.0 + +- Initial release. diff --git a/Manual.md b/Manual.md index df26fff..763a1bc 100644 --- a/Manual.md +++ b/Manual.md @@ -64,12 +64,16 @@ Options: -h, --header= Specifies the name of the header file to generate ``` +DVLEs are generated in the same order as the files in the command line. + ## Linking Model `picasso` takes one or more source code files, and assembles them into a single `.shbin` file. A DVLE object is generated for each source code file, unless the `.nodvle` directive is used (see below). Procedures are shared amongst all source code files, and they may be defined and called wherever. Uniform space is also shared, that is, if two source code files declare the same uniform, they are assigned the same location. Constants however are not shared, and the same space is reused for the constants of each DVLE. Outputs and aliases are necessarily not shared either. The entry point of a DVLE may be set with the `.entry` directive. If this directive is not used, `main` is assumed as the entrypoint. +A DVLE is marked by default as a vertex shader, unless `setemit` is used (in the case of which a geometry shader is assumed). + Uniforms that start with the underscore (`_`) character are not exposed in the DVLE table of uniforms. This allows for creating private uniforms that can be internally used to configure the behaviour of shared procedures. ## Supported Directives diff --git a/source/picasso_assembler.cpp b/source/picasso_assembler.cpp index 90d9632..754f693 100644 --- a/source/picasso_assembler.cpp +++ b/source/picasso_assembler.cpp @@ -7,7 +7,6 @@ static const char* curFile = NULL; static int curLine = -1; -bool g_isGeoShader = false; std::vector g_outputBuf; StackEntry g_stack[MAX_STACK];