Ian Elliott [Fri, 13 Feb 2015 21:04:01 +0000 (14:04 -0700)]
Enable additional Linux warnings, for loader/layers/demos.
The intention is for Linux developers to catch more problems (real or
annoyance) before porting to Windows.
The new warnings are:
-Wpointer-arith
-Wsign-compare
These are not used for the Intel sample driver (mostly because the Intel
compiler from Mesa3D generates lots of these warnings, which code we don't want
to modify), nor for the tests.
Not sure how this affects Glave on Linux.
Jon Ashburn [Fri, 13 Feb 2015 18:25:53 +0000 (11:25 -0700)]
glave: Replay for UpdateDescriptor handle multiple replays
The local chain copy had embedded pointers into the original chain. So
multiple replays/remaps weren't working. Simplify code to just save a queue
of the actaul objects that need to be remapped and restore them after making
the call to xglUpdateDescriptors().
Ian Elliott [Fri, 13 Feb 2015 17:57:55 +0000 (10:57 -0700)]
Minor fix/enhancement to BUILD.md.
1) Point CMake to www.cmake.org insead of www.python.org.
2) Give a couple of helpful pointers for ICD developers.
Ian Elliott [Fri, 13 Feb 2015 00:08:34 +0000 (17:08 -0700)]
Win: Attempt to keep from using Linux functions.
This is a hopefully-temporary solution to prevent some of the problems of
people breaking the Windows build while developing on Linux (or vice-versa).
This uses macros of the names of Linux/Windows-specific functions in order to
catch people who use those functions directly, instead of using the
platform-compatibility-layer functions.
In order to avoid problems with the layers #include'ing "loader_platform.h"
before they #include system files (which can mess them up), I #include
"loader_platform.h" twice. The 2nd time, it #define's the hopefully-temporary
macros.
Note: For some reason, we can't #define LoadLibrary(). It generates warnings
on Windows.
Ian Elliott [Thu, 12 Feb 2015 23:44:56 +0000 (16:44 -0700)]
Linux: Add back the "C99" comment within "loader_platform.h"
Courtney Goeltzenleuchter [Wed, 11 Feb 2015 01:40:14 +0000 (18:40 -0700)]
icd: add loader magic word to verify ICD is compatible
We wanted a more explicit way to determine if the driver
ICD being loaded is providing compatible objects. To do
that we check for a magic dword value at the beginning
of the object. Non-compliant ICDs will assert in the loader
or the loader's dispatch functions if an object does
not have the correct value.
Dispatch checks are debug only.
Ian Elliott [Thu, 12 Feb 2015 20:20:10 +0000 (13:20 -0700)]
Win/icd: Move STATIC_INLINE macro, and use for magic funcs.
The STATIC_INLINE macro is now in "xglPlatform.h". It is also now being used
by the *_loader_magic_value() functions. This allows it to be compiled on
Windows.
Jon Ashburn [Thu, 12 Feb 2015 19:37:46 +0000 (12:37 -0700)]
glave: Unregister debug callback on DestroyInstance()
Jon Ashburn [Thu, 12 Feb 2015 19:36:37 +0000 (12:36 -0700)]
icd: Fix removing callback from global list
Callback wasn't getting actually removed from the list.
Jon Ashburn [Thu, 12 Feb 2015 17:38:36 +0000 (10:38 -0700)]
glave: Handle null pointers in stringify of entrypoint parameters
Also add "*" for those pointers that are dereferenced.
Jens Owen [Thu, 12 Feb 2015 22:38:13 +0000 (15:38 -0700)]
Update BUILD.md
Update to build steps from Mike Sartain
Chia-I Wu [Wed, 11 Feb 2015 20:23:57 +0000 (13:23 -0700)]
icd: add U_ASSERT_ONLY
It can be applied to variables that are only used in assert().
Ian Elliott [Thu, 12 Feb 2015 18:36:03 +0000 (11:36 -0700)]
Win: "layers_config.cpp" must #include "loader_platform.h"
Ian Elliott [Thu, 12 Feb 2015 18:36:44 +0000 (11:36 -0700)]
Win: Build both "layer_utils.lib" and "layer_utils.dll".
Jeremy Hayes [Thu, 29 Jan 2015 20:03:36 +0000 (13:03 -0700)]
Add draw state diagram on pause events.
Add a Qt image viewer.
Use Qt image viewer to view draw state diagram.
Dump DOT files in appropriate entry points.
Conflicts:
layers/draw_state.c
Jon Ashburn [Wed, 14 Jan 2015 00:24:49 +0000 (17:24 -0700)]
glave: Add xgl settings that control the MemTracker and DrawState layers
Conflicts:
glave-generate.py
tools/glave/src/glv_extensions/glvreplay_xgl/glvreplay_xgl_settings.cpp
tools/glave/src/glv_extensions/glvreplay_xgl/glvreplay_xgl_settings.h
Jon Ashburn [Wed, 14 Jan 2015 00:24:01 +0000 (17:24 -0700)]
layers: Add ability to override layer settings from file with a call
Add setLayerOption function call.
Jon Ashburn [Tue, 13 Jan 2015 22:22:19 +0000 (15:22 -0700)]
layers: Make layer utilities a shared library for one instance per all layers
The global singleton contain map of layer settings had multiple instances. Fix
this by making it a shared library layer_utils.
Conflicts:
layers/CMakeLists.txt
Ian Elliott [Thu, 12 Feb 2015 00:36:23 +0000 (17:36 -0700)]
Win/Linux: Eliminate gcc compiler warning for "xglinfo.c"
Tobin Ehlis [Wed, 11 Feb 2015 21:24:02 +0000 (14:24 -0700)]
layers: Fixes for Windows build
Jon Ashburn [Wed, 11 Feb 2015 16:36:41 +0000 (09:36 -0700)]
tests demos: Fix pDataSize to be either unitinitalized or initialized.
Better tests tracing in uninit case and was a bug in the case where init was
added.
Jon Ashburn [Wed, 11 Feb 2015 16:32:29 +0000 (09:32 -0700)]
glave: Fix entrypoints with pDataSize and pData to handle non-input param
Properly handle tracing case of pDataSize == don't care as input when
pData == NULL.
Also fix bug on replay about not warning in cases where pData == NULL and
*pDataSize is a mismatch.
Jon Ashburn [Tue, 10 Feb 2015 21:32:23 +0000 (14:32 -0700)]
glave: remap sampler object in xglCreateDescriptorSetLayout()
Jon Ashburn [Tue, 10 Feb 2015 20:49:30 +0000 (13:49 -0700)]
glave: Actually add the memory barrier list of structures to trace file
Was just adding a pointer to these structures.
Jon Ashburn [Tue, 10 Feb 2015 17:36:22 +0000 (10:36 -0700)]
glave: Remap buf/image obj for MEMORY_BARRIER for cmdWaitEvents,cmdPipeBarrier
Jon Ashburn [Mon, 9 Feb 2015 19:56:10 +0000 (12:56 -0700)]
glave: Fix interpretation of allocMemory and beginCommandBuffer trace packets
Jon Ashburn [Mon, 9 Feb 2015 16:43:26 +0000 (09:43 -0700)]
glave: Qualify adding to trace packet descriptor set layout structs
Jon Ashburn [Wed, 11 Feb 2015 19:40:00 +0000 (12:40 -0700)]
loader: Update README.md to instancing API and C++ ICDs
Tobin Ehlis [Wed, 11 Feb 2015 20:13:18 +0000 (13:13 -0700)]
layers: Initial Descriptor Set output in DrawState Dot file
Also includes various code clean-up in DrawState layer to remove non-functional code.
Tobin Ehlis [Tue, 10 Feb 2015 22:35:23 +0000 (15:35 -0700)]
layers: Restore DrawState to general level of functionality
DrawState updated to track new resource binding model. Currently flagging some errors and printing out Region/Set/Layout/Update info for descriptors. Still lots of work to do. Next step is getting descriptors in dot file working again.
Ian Elliott [Wed, 4 Feb 2015 23:48:37 +0000 (16:48 -0700)]
Win: Eliminate VS2013 compiler warnings in "xglinfo.c"
Ian Elliott [Mon, 9 Feb 2015 20:21:11 +0000 (13:21 -0700)]
Win: Build both STATIC (.lib) and SHARED (.dll) loader libraries.
Tobin Ehlis [Fri, 6 Feb 2015 19:21:42 +0000 (12:21 -0700)]
glave: Fix for not correctly parsing down tree of structs in AllocMemory
Tobin Ehlis [Thu, 5 Feb 2015 18:29:45 +0000 (11:29 -0700)]
glave: Add custom code for embedded ptrs in CmdWaitEvents and CmdPipelineBarrier calls
Mark Lobodzinski [Mon, 9 Feb 2015 16:20:53 +0000 (10:20 -0600)]
layers: Validate mem ref counts in queueSubmit call
Grab and save max from GetGpuInfo, use this to validate count in
QueueSubmit call, warn if GetGpuInfo wasn't called beforehand.
Mark Lobodzinski [Mon, 9 Feb 2015 16:16:20 +0000 (10:16 -0600)]
layers: Handle null fence objects in validation
QueueSubmit can be called with a NULL fence object, updated validation
to correctly handle this case.
Norbert Nopper [Sun, 8 Feb 2015 07:51:58 +0000 (08:51 +0100)]
Merge pull request #2 from FslNopper/master
Merge pull request #2 from KhronosGroup/master
Norbert Nopper [Sat, 7 Feb 2015 08:44:14 +0000 (09:44 +0100)]
Merge pull request #2 from KhronosGroup/master
Update to head fork.
Ian Elliott [Sat, 7 Feb 2015 01:10:35 +0000 (18:10 -0700)]
Win: Allow the demos "tri" and "xglinfo" to build on Windows.
These had the WSI hacked out of them, since there isn't yet a standard API
in this space, and what was originally done is only for X11.
Piers Daniell [Fri, 6 Feb 2015 23:41:39 +0000 (16:41 -0700)]
Restore xgl.h comments and original whitespace
This keeps the real 47.1 changes in tact.
Gingertoes [Fri, 6 Feb 2015 22:22:44 +0000 (15:22 -0700)]
Get xglPlatform.h working with old MSVC
This was added to revision SVN 29370 for Khronos bug 13274.
Courtney Goeltzenleuchter [Sat, 7 Feb 2015 00:19:19 +0000 (17:19 -0700)]
Merge branch 'FslNopper-master'
Ian Elliott [Thu, 5 Feb 2015 22:19:15 +0000 (15:19 -0700)]
Fix unitialized value in xglCreateInstance().
This causes a problem when no ICD is found. The function's "res" variable is
returned despite never being intialized. For now, I chose to return
XGL_ERROR_INCOMPATIBLE_DRIVER.
Norbert Nopper [Fri, 6 Feb 2015 20:06:58 +0000 (21:06 +0100)]
Changed note, that everything can be done in the console.
Norbert Nopper [Fri, 6 Feb 2015 19:57:52 +0000 (20:57 +0100)]
Improved note layout.
Norbert Nopper [Fri, 6 Feb 2015 19:56:32 +0000 (20:56 +0100)]
Added note on how to reinstall working driver.
Norbert Nopper [Fri, 6 Feb 2015 19:53:06 +0000 (20:53 +0100)]
Merge pull request #1 from KhronosGroup/master
Update from head fork.
Tony Barbour [Thu, 5 Feb 2015 21:14:33 +0000 (14:14 -0700)]
misc:Fixes to get better behavior in release builds
Add -fno-strict-aliasing -fno-builtin-memcmp - Both of these are
used by the Mesa driver, and without the first one, we hang? in
link_shaders on release builds
Move cube's LoadTexture out of an assert so it isn't skipped in
release builds
Courtney Goeltzenleuchter [Fri, 6 Feb 2015 00:02:39 +0000 (17:02 -0700)]
misc: Add warning about recent Ubuntu 14.10 issue
Jon Ashburn [Thu, 5 Feb 2015 23:48:13 +0000 (16:48 -0700)]
glave: fix replay of AllocMemory packets with info chained structures
Courtney Goeltzenleuchter [Thu, 5 Feb 2015 22:35:26 +0000 (15:35 -0700)]
BIL: Update BIL version
Tony Barbour [Thu, 5 Feb 2015 20:55:03 +0000 (13:55 -0700)]
glave:Fix off by one error in image generation
Jon Ashburn [Thu, 5 Feb 2015 20:42:38 +0000 (13:42 -0700)]
glave: Fix debugger to export g_pReplaySettings for xglreplayer library
Ian Elliott [Thu, 5 Feb 2015 19:22:51 +0000 (12:22 -0700)]
Add build instructions for Windows.
Courtney Goeltzenleuchter [Thu, 5 Feb 2015 19:13:26 +0000 (12:13 -0700)]
BIL: Update revision number for BIL
Tony Barbour [Thu, 5 Feb 2015 16:46:17 +0000 (09:46 -0700)]
tools:Incorperate review feedback on glave screenshots
Move variables into display struct
Make width and height vectors
Change names from snapshot to screenshot
Fix bug when no screenshot frames specified
Tony Barbour [Mon, 2 Feb 2015 20:21:18 +0000 (13:21 -0700)]
glave:add code to snapshot frames
Tobin Ehlis [Thu, 5 Feb 2015 18:51:35 +0000 (11:51 -0700)]
layers: Update README.md with current layer status
Ian Elliott [Wed, 4 Feb 2015 22:19:32 +0000 (15:19 -0700)]
Win: Eliminate VS2013 miscellaneous additional compiler warnings.
Ian Elliott [Wed, 4 Feb 2015 19:15:12 +0000 (12:15 -0700)]
Win: Eliminate VS2013 compiler warnings in auto-gen'd layer code.
Ian Elliott [Wed, 4 Feb 2015 19:06:46 +0000 (12:06 -0700)]
Win: Eliminate VS2013 compiler warnings for "loader.c" ...
As part of this, eliminated some similar warnings within/across usage of
"loader_platform.h". One of these is #define'ing _CRT_SECURE_NO_WARNINGS, so
that VisualStudio won't issue warnings with our use of _snprint() (which they
don't consider secure enough; but their desired function doesn't match the
signature of snprintf()).
Ian Elliott [Wed, 4 Feb 2015 18:22:39 +0000 (11:22 -0700)]
Win: Move some macros to "loader_platform.h"
Courtney Goeltzenleuchter [Thu, 5 Feb 2015 00:50:32 +0000 (17:50 -0700)]
misc: Update readme for alpha header post
Jon Ashburn [Wed, 4 Feb 2015 23:26:30 +0000 (16:26 -0700)]
glave: More fixes to UpdateDescriptors UPDATE_BUFFERS and UPDATE_IMAGES
Tobin Ehlis [Wed, 4 Feb 2015 22:15:11 +0000 (15:15 -0700)]
glave: Don't dereference null pUserData in APIDump* layers
Tobin Ehlis [Wed, 4 Feb 2015 21:57:24 +0000 (14:57 -0700)]
glave: Fix bugs with UpdateDescriptors pUpdateChain on replay
Jon Ashburn [Wed, 4 Feb 2015 19:57:25 +0000 (12:57 -0700)]
glave: Fixes in UpdateDescriptar and ClearDescriptorSets
Also removed dead replay code for StateTransitions and AttachDescriptorSet
Jon Ashburn [Wed, 4 Feb 2015 17:55:47 +0000 (10:55 -0700)]
glave: Add interpret function for xglCreateDescriptorSetLayout
Tobin Ehlis [Wed, 4 Feb 2015 17:53:31 +0000 (10:53 -0700)]
glave: Create interpret function for pUpdateChain of xglUpdateDescriptors()
Jon Ashburn [Wed, 4 Feb 2015 16:32:59 +0000 (09:32 -0700)]
glave: fix CreateDescriptorRegion trace/replay
Jon Ashburn [Wed, 4 Feb 2015 15:50:35 +0000 (08:50 -0700)]
glave: Fix trace/replay of CreateDynamicViewportState
Jon Ashburn [Wed, 4 Feb 2015 00:47:58 +0000 (17:47 -0700)]
glave: Various fixes for UPDATE_SAMPLERS and PIPELINE_CB_STATE structures
Jon Ashburn [Tue, 3 Feb 2015 20:39:05 +0000 (13:39 -0700)]
glave: Fix EnumerateLayers replay to handle if layer libs differ from tracing
Was not handling the case where the layer libraries enumerated at replay time
were greater than those enumerated at trace time.
Mark Lobodzinski [Tue, 3 Feb 2015 22:44:20 +0000 (16:44 -0600)]
xgl: Final edits for rev47+ alignment
Took care of the remaining substantive differences. Still many
formatting/commenting differences. Version set to 47.1 to indicate
some post-47 additions.
Mark Lobodzinski [Tue, 3 Feb 2015 17:52:26 +0000 (11:52 -0600)]
layers: Add validation for mapped mem objects ref'd in cmd buffer
If any mem object is still mapped while referenced in a command
buffer, throw a validation error message.
Tobin Ehlis [Tue, 3 Feb 2015 21:41:26 +0000 (14:41 -0700)]
glave: Glave updated for resource binding model
In glave trace and replay, account for the fact that CreateDescriptorSetLayout and UpdateDescriptors both take chains of structs.
Ian Elliott [Wed, 14 Jan 2015 00:52:38 +0000 (17:52 -0700)]
Can compile "loader" and "layers" on Windows and Linux ...
These directories build and are partially turned-on on Windows, using the "tri"
demo (follow-on commit) and a "NULL driver" that was created out of the
sample/Intel driver. The GetProcAddress() is not yet finding symbols in the
NULL driver.
For now:
- "C:\Windows\System32" is the default XGL driver directory. The getenv()
isn't yet working. I suggest creating your own #define in order to point to
where a driver is.
- In order to recognize a Windows driver, we must look at both its prefix and
suffix (i.e. it is named "XGL_*.dll", e.g. "XGL_i965.dll).
- We autogenerate Windows ".def" files for the layers. Additional info is:
- This is necessary in order for a DLL to export symbols that can be queried
using GetProcAddress(). We can't use the normal Windows approach of
declaring these functions using "__declspec(dllexport)", because these
functions are declared in "xgl.h".
- This involves adding and running the new "xgl-win-def-file-generate.py"
file.
- NOTE: Layers don't have the xglInitAndEnumerateGpus() entrypoint, just the
xglGetProcAddr() entrypoint (and now the xglEnumerateLayers() entrypoint).
Generating them is pretty simple.
NOTE: In order to build on a 64-bit Windows 7/8 system, I did the following:
- Install VisualStudio 2013 Professional
- Install CMake from: http://www.cmake.org/cmake/resources/software.html
- I let it add itself to the system PATH environment variable.
- Install Python 3 from: https://www.python.org/downloads
- I let it add itself to the system PATH environment variable.
- Obtain the Git repository, checkout the "ian-150127-WinBuild" branch.
- Using a Cygwin shell: I did the following:
- "cd" to the top-level directory (i.e. the one that contains the ".git"
directory).
- "mkdir _out64"
- "cd _out64"
- "cmake -G "Visual Studio 12 Win64" .."
- At this point, I used WindowsExplorer to open the "XGL.sln" file. I can
build. CMake causes the build shortcut to be "Ctrl-Shift-B" instead of the
normal "F7". I had to right-click the "ALL_BUILD" project, go to
Properties->Debugging and change the debug Command and Working Directory to
point to "tri.exe" and where the executable are. At this point, I can debug
(using the normal "F5" shortcut).
Jon Ashburn [Tue, 3 Feb 2015 18:24:08 +0000 (11:24 -0700)]
glave: On replay remap buffer handle for CreateBufferView
Mark Lobodzinski [Tue, 3 Feb 2015 16:06:31 +0000 (10:06 -0600)]
layers: Add object tracker validation for dynamic state objects
Add validation for dynamic state objects (viewport, raster, color-
blend and depth-stencil) to the object-tracker layer.
Jon Ashburn [Tue, 3 Feb 2015 16:26:59 +0000 (09:26 -0700)]
loader: Make sure loader instances get updated upon DestroyInstance()
Jon Ashburn [Tue, 3 Feb 2015 16:17:12 +0000 (09:17 -0700)]
glave: Only remove replay handle maps on DestroyInstance
This only works with a single instance at any given time.
Jon Ashburn [Tue, 3 Feb 2015 15:57:28 +0000 (08:57 -0700)]
glave: Fix tracing CreateInstance appInfo and replay DestroyInstance rm map
Jon Ashburn [Tue, 3 Feb 2015 14:33:48 +0000 (07:33 -0700)]
glave: Fix tracing and replay for AllocMemory nested structures
Jon Ashburn [Mon, 2 Feb 2015 16:58:11 +0000 (09:58 -0700)]
render_pass: Add CmdBegin{End}RenderPass()
This is part of rev 47 but was accidentally skipped.
Jon Ashburn [Mon, 2 Feb 2015 19:39:24 +0000 (12:39 -0700)]
glave: Fix trace packets for Instancing related APIs
Also fix EnumerateLayers trace start time.
Mark Lobodzinski [Mon, 2 Feb 2015 17:55:52 +0000 (11:55 -0600)]
xgl: Fix typo in memory barriers APIs
Misspelled a parameter name, fixup for header cplusplus definition.
Tobin Ehlis [Thu, 22 Jan 2015 19:29:31 +0000 (12:29 -0700)]
glave: Added comments noting glave work still to be done for xgl.h updates
Conflicts:
glave-generate.py
Tobin Ehlis [Thu, 22 Jan 2015 17:45:21 +0000 (10:45 -0700)]
layers: Continuing to update DrawState for new binding model
Conflicts:
layers/draw_state.c
layers/draw_state.h
Tobin Ehlis [Tue, 20 Jan 2015 16:48:48 +0000 (09:48 -0700)]
layers: Updated API codegen to handle AllocDescriptorSets
Tobin Ehlis [Tue, 20 Jan 2015 20:50:59 +0000 (13:50 -0700)]
glave: Trace and replay codegen handles AllocDescriptorSets
Conflicts:
glave-generate.py
Tobin Ehlis [Mon, 19 Jan 2015 15:42:29 +0000 (08:42 -0700)]
layers: Updating MemTracker and DrawState interfaces to match API updates
Still need to update functionality internal to the layers.
Conflicts:
layers/draw_state.c
layers/mem_tracker.c
Tobin Ehlis [Fri, 16 Jan 2015 22:13:34 +0000 (15:13 -0700)]
Various code clean-ups for glave and codegen with updated xgl.h
Conflicts:
glave-generate.py
Tobin Ehlis [Fri, 16 Jan 2015 15:56:30 +0000 (08:56 -0700)]
Added Mark's change to track Fence submit
Conflicts:
layers/object_track.h
Tobin Ehlis [Fri, 16 Jan 2015 00:53:54 +0000 (17:53 -0700)]
Glave now compiling although I'm certain it's very broken.
Time to start sifting through the code now to make it as functional as possible for when the driver catches up and we can really test things again.
Conflicts:
glave-generate.py
Tobin Ehlis [Fri, 16 Jan 2015 00:51:52 +0000 (17:51 -0700)]
All of the codegen for layers is now working well enough that the generated layers will compile.
Lots of updates required to DrawState and MemTracker layers so just commenting them out the build initially.
Conflicts:
layers/draw_state.c
layers/multi.cpp
xgl-layer-generate.py
xgl.py
Jon Ashburn [Thu, 29 Jan 2015 23:54:38 +0000 (16:54 -0700)]
instance: Remove xglInitAndEnumerateGpus
Jon Ashburn [Thu, 29 Jan 2015 23:44:24 +0000 (16:44 -0700)]
loader: Add loops for multiple instances on global debug calls
Jon Ashburn [Thu, 29 Jan 2015 22:47:01 +0000 (15:47 -0700)]
demos: Convert to using Instancing API rather than xglInitAndEnumerateGpus()
Jon Ashburn [Thu, 29 Jan 2015 22:45:51 +0000 (15:45 -0700)]
loader: Finish implement CreateInstance and DestroyInstance
Jon Ashburn [Thu, 29 Jan 2015 02:57:09 +0000 (19:57 -0700)]
loader: Implement EnumerateGpus()