blob: e41ade41e541a75349650b460c9c5b6c1b9fdb55 [file] [log] [blame] [view]
JensOwen786bcc62014-11-01 09:28:29 -06001# Explicit GL (XGL) Ecosystem Components
Courtney Goeltzenleuchterb66da032014-12-11 16:41:43 -07002*Version 0.6, 11 Dec 2014*
Courtney Goeltzenleuchter21f8ea52014-09-01 17:18:57 -06003
JensOwen95c62272014-11-01 13:05:43 -06004This project provides *open source* components for the XGL Ecosystem.
Courtney Goeltzenleuchter21f8ea52014-09-01 17:18:57 -06005
JensOwen95c62272014-11-01 13:05:43 -06006## Introduction
7
8The components here are being shared with the Khronos community to provide
9early insights into the specification of XGL and to assists those doing
10prototyping at this point.
JensOwen786bcc62014-11-01 09:28:29 -060011
12The following components are available:
JensOwend7e99e72014-11-01 09:37:13 -060013- Proposed Reference [*ICD Loader*](https://github.com/KhronosGroup/GL-Next/tree/master/loader) (including [*Layer Management*](https://github.com/KhronosGroup/GL-Next/tree/master/layers/README.md))
JensOwen786bcc62014-11-01 09:28:29 -060014- Proposed Reference [*Validation Layers*](https://github.com/KhronosGroup/GL-Next/tree/master/layers/)
15 - [Object Tracker](https://github.com/KhronosGroup/GL-Next/blob/master/layers/object_track.c)
16 - [Draw State](https://github.com/KhronosGroup/GL-Next/blob/master/layers/draw_state.c)
Courtney Goeltzenleuchter76793e62014-11-26 09:56:28 -070017 - [MemTracker](https://github.com/KhronosGroup/GL-Next/blob/master/layers/mem_tracker.c)
18- *GLAVE Debugger*
Courtney Goeltzenleuchter16a0a172014-12-02 11:54:27 -070019 - APIDump (generated)
Courtney Goeltzenleuchter76793e62014-11-26 09:56:28 -070020 - APIDumpFile (generated)
Courtney Goeltzenleuchterb66da032014-12-11 16:41:43 -070021 - glvtrace64: capture trace of XGL API of an application.
22 - glvreplay64: replay captured trace.
JensOwenf629f222014-11-01 14:05:50 -060023- [*Sample Drivers*](https://github.com/KhronosGroup/GL-Next/tree/master/icd)
JensOwen786bcc62014-11-01 09:28:29 -060024 - [Common Infrastructure](https://github.com/KhronosGroup/GL-Next/tree/master/icd/common)
25 - [Implementation for Intel GPUs](https://github.com/KhronosGroup/GL-Next/tree/master/icd/intel)
Courtney Goeltzenleuchter7b193492014-12-09 09:33:18 -070026- [*Sample Driver Tests*](https://github.com/KhronosGroup/GL-Next/tree/master/tests)
27 - Now includes Golden images to verify xgl_render_tests rendering.
JensOwen786bcc62014-11-01 09:28:29 -060028
Courtney Goeltzenleuchter76793e62014-11-26 09:56:28 -070029## New
30
Courtney Goeltzenleuchterb66da032014-12-11 16:41:43 -070031- XGL API trace and capture tools. See tools/glave/README.md for details.
Courtney Goeltzenleuchter7b193492014-12-09 09:33:18 -070032- Sample driver now supports multiple render targets. Added TriangleMRT to test that functionality.
33- Added XGL_SLOT_SHADER_TEXTURE_RESOURCE to xgl.h as a descriptor slot type to work around confusion in GLSL
34 between textures and buffers as shader resources.
35- Misc. fixes for layers and Intel sample driver
36
37## Prior updates
38
39- Added mutex to APIDump, APIDumpFile and DrawState to prevent apparent threading issues using printf
40- Fix support for {Fill,Copy}Memory
41- MemTracker can report issues to application via debug callback
42- Update test infrastructure to improve ease of writing new tests. Add image comparison feature for regression testing. Requires ImageMagick library.
43- Misc. fixes to demos, layers and Intel sample driver
Courtney Goeltzenleuchter16a0a172014-12-02 11:54:27 -070044- Added mutex to APIDump, APIDumpFile and DrawState to prevent apparent threading issues using printf
45- Fix support for {Fill,Copy}Memory
46- MemTracker can report issues to application via debug callback
47- Update test infrastructure to improve ease of writing new tests. Add image comparison feature for regression testing. Requires ImageMagick library.
48- Misc. fixes to demos, layers and Intel sample driver
Courtney Goeltzenleuchter76793e62014-11-26 09:56:28 -070049
JensOwen95c62272014-11-01 13:05:43 -060050## How to Build and Run
51
JensOwen3ceb4752014-11-01 13:18:21 -060052[BUILD.md](https://github.com/KhronosGroup/GL-Next/tree/master/BUILD.md)
53includes directions for building all the components, running the validation tests and running the demo applications.
JensOwen95c62272014-11-01 13:05:43 -060054
Courtney Goeltzenleuchter76793e62014-11-26 09:56:28 -070055Information on how to enable the various Debug and Validation layers is in
JensOwen95c62272014-11-01 13:05:43 -060056[layers/README.md](https://github.com/KhronosGroup/GL-Next/tree/master/layers/README.md).
57
58## References
JensOwen786bcc62014-11-01 09:28:29 -060059This version of the components are written based on the following preliminary specs and proposals:
60- [**XGL Programers Reference**, 1 Jul 2014](https://cvs.khronos.org/svn/repos/oglc/trunk/nextgen/proposals/AMD/Explicit%20GL%20Programming%20Guide%20and%20API%20Reference.pdf)
61- [**BIL**, version 1.0, revision 18](https://cvs.khronos.org/svn/repos/oglc/trunk/nextgen/proposals/BIL/Specification/BIL.html)
Courtney Goeltzenleuchter76793e62014-11-26 09:56:28 -070062- [**IMG's Fixed Function Proposal**, 13 Nov 2014](https://cvs.khronos.org/svn/repos/oglc/trunk/nextgen/XGL/accepted/xgl_fixed_function_vertex_fetch_proposal.txt)
JensOwene3429322014-11-01 09:39:46 -060063- [**Valve's Loader Proposal**, 7 Oct 2014](https://cvs.khronos.org/svn/repos/oglc/trunk/nextgen/proposals/Valve/xglLayers.pptx)
Courtney Goeltzenleuchter21f8ea52014-09-01 17:18:57 -060064
JensOwen95c62272014-11-01 13:05:43 -060065## License
Courtney Goeltzenleuchter21f8ea52014-09-01 17:18:57 -060066This work is intended to be released as open source under a BSD-style
67license once the XGL specification is public. Until that time, this work
68is covered by the Khronos NDA governing the details of the XGL API.
69
JensOwen95c62272014-11-01 13:05:43 -060070## Acknowledgements
Courtney Goeltzenleuchter21f8ea52014-09-01 17:18:57 -060071While this project is being developed by LunarG, Inc; there are many other
72companies and individuals making this possible: Valve Software, funding
73project development; Intel Corporation, providing full hardware specifications
74and valuable technical feedback; AMD, providing XGL spec editor contributions;
75ARM, contributing a Chairman for this working group within Khronos; Nvidia,
76providing an initial co-editor for the spec; Qualcomm for picking up the
77co-editor's chair; and Khronos, for providing hosting within GitHub.
78
JensOwen95c62272014-11-01 13:05:43 -060079## Contact
80If you have questions or comments about this driver; or you would like to contribute
81directly to this effort, please contact us at XGL@LunarG.com; or if you prefer, via
82the GL Common mailing list: gl_common@khronos.org