| JensOwen | 786bcc6 | 2014-11-01 09:28:29 -0600 | [diff] [blame] | 1 | # Explicit GL (XGL) Ecosystem Components
|
| Courtney Goeltzenleuchter | b66da03 | 2014-12-11 16:41:43 -0700 | [diff] [blame] | 2 | *Version 0.6, 11 Dec 2014*
|
| Courtney Goeltzenleuchter | 21f8ea5 | 2014-09-01 17:18:57 -0600 | [diff] [blame] | 3 |
|
| JensOwen | 95c6227 | 2014-11-01 13:05:43 -0600 | [diff] [blame] | 4 | This project provides *open source* components for the XGL Ecosystem.
|
| Courtney Goeltzenleuchter | 21f8ea5 | 2014-09-01 17:18:57 -0600 | [diff] [blame] | 5 |
|
| JensOwen | 95c6227 | 2014-11-01 13:05:43 -0600 | [diff] [blame] | 6 | ## Introduction
|
| 7 |
|
| 8 | The components here are being shared with the Khronos community to provide
|
| 9 | early insights into the specification of XGL and to assists those doing
|
| 10 | prototyping at this point.
|
| JensOwen | 786bcc6 | 2014-11-01 09:28:29 -0600 | [diff] [blame] | 11 |
|
| 12 | The following components are available:
|
| JensOwen | d7e99e7 | 2014-11-01 09:37:13 -0600 | [diff] [blame] | 13 | - 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))
|
| JensOwen | 786bcc6 | 2014-11-01 09:28:29 -0600 | [diff] [blame] | 14 | - 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 Goeltzenleuchter | 76793e6 | 2014-11-26 09:56:28 -0700 | [diff] [blame] | 17 | - [MemTracker](https://github.com/KhronosGroup/GL-Next/blob/master/layers/mem_tracker.c)
|
| 18 | - *GLAVE Debugger*
|
| Courtney Goeltzenleuchter | 16a0a17 | 2014-12-02 11:54:27 -0700 | [diff] [blame] | 19 | - APIDump (generated)
|
| Courtney Goeltzenleuchter | 76793e6 | 2014-11-26 09:56:28 -0700 | [diff] [blame] | 20 | - APIDumpFile (generated)
|
| Courtney Goeltzenleuchter | b66da03 | 2014-12-11 16:41:43 -0700 | [diff] [blame] | 21 | - glvtrace64: capture trace of XGL API of an application.
|
| 22 | - glvreplay64: replay captured trace.
|
| JensOwen | f629f22 | 2014-11-01 14:05:50 -0600 | [diff] [blame] | 23 | - [*Sample Drivers*](https://github.com/KhronosGroup/GL-Next/tree/master/icd)
|
| JensOwen | 786bcc6 | 2014-11-01 09:28:29 -0600 | [diff] [blame] | 24 | - [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 Goeltzenleuchter | 7b19349 | 2014-12-09 09:33:18 -0700 | [diff] [blame] | 26 | - [*Sample Driver Tests*](https://github.com/KhronosGroup/GL-Next/tree/master/tests)
|
| 27 | - Now includes Golden images to verify xgl_render_tests rendering.
|
| JensOwen | 786bcc6 | 2014-11-01 09:28:29 -0600 | [diff] [blame] | 28 |
|
| Courtney Goeltzenleuchter | 76793e6 | 2014-11-26 09:56:28 -0700 | [diff] [blame] | 29 | ## New
|
| 30 |
|
| Courtney Goeltzenleuchter | b66da03 | 2014-12-11 16:41:43 -0700 | [diff] [blame] | 31 | - XGL API trace and capture tools. See tools/glave/README.md for details.
|
| Courtney Goeltzenleuchter | 7b19349 | 2014-12-09 09:33:18 -0700 | [diff] [blame] | 32 | - 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 Goeltzenleuchter | 16a0a17 | 2014-12-02 11:54:27 -0700 | [diff] [blame] | 44 | - 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 Goeltzenleuchter | 76793e6 | 2014-11-26 09:56:28 -0700 | [diff] [blame] | 49 |
|
| JensOwen | 95c6227 | 2014-11-01 13:05:43 -0600 | [diff] [blame] | 50 | ## How to Build and Run
|
| 51 |
|
| JensOwen | 3ceb475 | 2014-11-01 13:18:21 -0600 | [diff] [blame] | 52 | [BUILD.md](https://github.com/KhronosGroup/GL-Next/tree/master/BUILD.md)
|
| 53 | includes directions for building all the components, running the validation tests and running the demo applications.
|
| JensOwen | 95c6227 | 2014-11-01 13:05:43 -0600 | [diff] [blame] | 54 |
|
| Courtney Goeltzenleuchter | 76793e6 | 2014-11-26 09:56:28 -0700 | [diff] [blame] | 55 | Information on how to enable the various Debug and Validation layers is in
|
| JensOwen | 95c6227 | 2014-11-01 13:05:43 -0600 | [diff] [blame] | 56 | [layers/README.md](https://github.com/KhronosGroup/GL-Next/tree/master/layers/README.md).
|
| 57 |
|
| 58 | ## References
|
| JensOwen | 786bcc6 | 2014-11-01 09:28:29 -0600 | [diff] [blame] | 59 | This 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 Goeltzenleuchter | 76793e6 | 2014-11-26 09:56:28 -0700 | [diff] [blame] | 62 | - [**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)
|
| JensOwen | e342932 | 2014-11-01 09:39:46 -0600 | [diff] [blame] | 63 | - [**Valve's Loader Proposal**, 7 Oct 2014](https://cvs.khronos.org/svn/repos/oglc/trunk/nextgen/proposals/Valve/xglLayers.pptx)
|
| Courtney Goeltzenleuchter | 21f8ea5 | 2014-09-01 17:18:57 -0600 | [diff] [blame] | 64 |
|
| JensOwen | 95c6227 | 2014-11-01 13:05:43 -0600 | [diff] [blame] | 65 | ## License
|
| Courtney Goeltzenleuchter | 21f8ea5 | 2014-09-01 17:18:57 -0600 | [diff] [blame] | 66 | This work is intended to be released as open source under a BSD-style
|
| 67 | license once the XGL specification is public. Until that time, this work
|
| 68 | is covered by the Khronos NDA governing the details of the XGL API.
|
| 69 |
|
| JensOwen | 95c6227 | 2014-11-01 13:05:43 -0600 | [diff] [blame] | 70 | ## Acknowledgements
|
| Courtney Goeltzenleuchter | 21f8ea5 | 2014-09-01 17:18:57 -0600 | [diff] [blame] | 71 | While this project is being developed by LunarG, Inc; there are many other
|
| 72 | companies and individuals making this possible: Valve Software, funding
|
| 73 | project development; Intel Corporation, providing full hardware specifications
|
| 74 | and valuable technical feedback; AMD, providing XGL spec editor contributions;
|
| 75 | ARM, contributing a Chairman for this working group within Khronos; Nvidia,
|
| 76 | providing an initial co-editor for the spec; Qualcomm for picking up the
|
| 77 | co-editor's chair; and Khronos, for providing hosting within GitHub.
|
| 78 |
|
| JensOwen | 95c6227 | 2014-11-01 13:05:43 -0600 | [diff] [blame] | 79 | ## Contact
|
| 80 | If you have questions or comments about this driver; or you would like to contribute
|
| 81 | directly to this effort, please contact us at XGL@LunarG.com; or if you prefer, via
|
| 82 | the GL Common mailing list: gl_common@khronos.org
|