Jon Ashburn [Wed, 18 Mar 2015 18:01:19 +0000 (12:01 -0600)]
BUILD.md: Update Windows instructions for correct registry and python3.3
Jon Ashburn [Wed, 18 Mar 2015 15:29:11 +0000 (09:29 -0600)]
win: Make build able to find python3 on Windows and Linux
Use the py launcher on Windows which understands she bangs
Cody Northrop [Tue, 17 Mar 2015 21:55:58 +0000 (15:55 -0600)]
SPIR-V: Change BIL to SPV in all source files
Cody Northrop [Tue, 17 Mar 2015 20:54:35 +0000 (14:54 -0600)]
icd: Rename icd-bil.h to icd-spv.h
Steve K [Tue, 17 Mar 2015 16:18:08 +0000 (10:18 -0600)]
fix cube demo for .spv filenames
Jon Ashburn [Tue, 17 Mar 2015 23:54:58 +0000 (17:54 -0600)]
Revert "misc: Explicitly run python for generated code"
This reverts commit
10e987d610d43b37556df9b12349f9ffc8cb30c4.
Jon Ashburn [Tue, 17 Mar 2015 23:34:20 +0000 (16:34 -0700)]
misc: Explicitly run python for generated code
On windows if multiple python versions installed, then command line args
for python scripts fail. This works around python issue
Mark Lobodzinski [Tue, 17 Mar 2015 15:53:12 +0000 (10:53 -0500)]
layers: Added fence tracking for command buffer completion
Cleaned up MemTracker fence tracking for command buffer completions,
fixed several issues with local fences.
Mark Lobodzinski [Thu, 5 Mar 2015 16:07:53 +0000 (10:07 -0600)]
layers: Reduce unmeaningful error messages for memtracker
It is a common case for a command buffer not to have a fence associated
with it -- no reason to call these cases out as errors.
Tobin Ehlis [Wed, 4 Mar 2015 15:38:22 +0000 (08:38 -0700)]
layers: MemTracker add check to verify CB complete prior to Reset
If CB fence has not completed on call to Begin or Reset CB, flag validation error.
Various improvements to make sure the CB fence is getting reset as appropriate if the fence completes or is destroyed.
Tobin Ehlis [Mon, 16 Mar 2015 16:44:40 +0000 (10:44 -0600)]
layers: Update DrawState to use generated struct size functions
Update struct size codegen to handle callback void* case and ppMemBarriers void** cases conservatively for now.
Tobin Ehlis [Mon, 16 Mar 2015 14:21:33 +0000 (08:21 -0600)]
glave: Use generated code to get pAppInfo struct size
Tobin Ehlis [Fri, 13 Mar 2015 13:18:05 +0000 (07:18 -0600)]
glave: Update more trace custom code to use generated struct sizing code instead
Tobin Ehlis [Thu, 12 Mar 2015 20:50:40 +0000 (14:50 -0600)]
glave: Add codgen helper for struct size calculation and use for trace packet creation
Tobin Ehlis [Wed, 11 Mar 2015 23:19:54 +0000 (17:19 -0600)]
glave: Codegen cleanup for tracing code to add/finalize ptrs in packet
Tobin Ehlis [Tue, 10 Mar 2015 17:04:17 +0000 (11:04 -0600)]
glave: Simplify codegen for trace packet sizing
Peter Lohrmann [Tue, 10 Mar 2015 22:30:36 +0000 (15:30 -0700)]
glave-generate: Replace asserts with proper error detection and error logging.
* On Linux debug builds, the asserts cause the debugger to abort, but the code wasn't handling the error case safely anyway, so even a release build would likely crash.
* These situations were being hit if trying to load a trace file from an earlier header version, but are likely to be conditions we'll see when new developers start to use the API.
* With these changes, the error is properly reported and error return values propogated so that the UI detects the invalid file and reports an error to the user.
* The new glv_LogError(..) messages get printed to the console, but are not yet passed to the UI. This will be done as part of a larger change sometime in the future.
Jon Ashburn [Mon, 9 Mar 2015 17:33:40 +0000 (11:33 -0600)]
glave: Fix createRenderpass replay restore of remapped FB
Ian Elliott [Fri, 6 Mar 2015 21:34:47 +0000 (14:34 -0700)]
Win/C11: Use _align_malloc() on Windows, align_alloc() elsewhere.
Mark Lobodzinski [Thu, 5 Mar 2015 18:39:33 +0000 (12:39 -0600)]
layers: Improve PresentableImage memory handling in mem/objecttracker
Add handling to eliminate meaningless error reporting for the
xglWsiX11CreatePresentableImage memory resources.
Ian Elliott [Fri, 6 Mar 2015 20:50:05 +0000 (13:50 -0700)]
Win: Fix warnings for parameter of getLayerOptionEnum()
Ian Elliott [Fri, 6 Mar 2015 20:49:44 +0000 (13:49 -0700)]
Win: Fix a compiler warning in "icd/common"
Tobin Ehlis [Fri, 6 Mar 2015 17:38:25 +0000 (10:38 -0700)]
Update xgl_helper to handle all of the dynamic arrays
Jeremy Hayes [Fri, 6 Mar 2015 19:58:13 +0000 (12:58 -0700)]
glave: Remove unnecessary dot dump.
Ian Elliott [Fri, 6 Mar 2015 18:37:07 +0000 (11:37 -0700)]
Win/glvdebug: Update the BUILD.md dependencies.
Update the BUILD.md dependencies in order to build Glave debugger/GUI on
Windows.
Chia-I Wu [Thu, 5 Mar 2015 21:22:56 +0000 (14:22 -0700)]
nulldrv: build it on Linux
It compiles!
Chia-I Wu [Thu, 5 Mar 2015 21:26:54 +0000 (14:26 -0700)]
nulldrv: fix gcc errors/warnings
The only functional change should be that _aligned_malloc() is replaced by
malloc(). It does not seem to matter.
Chia-I Wu [Wed, 4 Mar 2015 18:19:59 +0000 (11:19 -0700)]
icd: remove stale function declarations
Remove declarations of
icdDbgRegisterMsgCallback()
icdDbgUnregisterMsgCallback()
icdDbgSetGlobalOption()
Chia-I Wu [Sun, 22 Feb 2015 06:41:03 +0000 (14:41 +0800)]
icd: remove unused icd-alloc.[ch]
Chia-I Wu [Sun, 22 Feb 2015 06:40:25 +0000 (14:40 +0800)]
nulldrv: remove icd-alloc.h dependency
Chia-I Wu [Fri, 20 Feb 2015 20:41:57 +0000 (13:41 -0700)]
icd: add support for per-instance DRM enumeration
Add icd_instance to DRM enumeration functions, and use it for memory
allocation or logging.
Chia-I Wu [Sat, 21 Feb 2015 06:00:17 +0000 (14:00 +0800)]
icd: add generic icd_instance
It provides memory allocation and logging support.
Ian Elliott [Thu, 5 Mar 2015 19:28:53 +0000 (12:28 -0700)]
Win: Fix compilation errors.
Courtney Goeltzenleuchter [Wed, 4 Mar 2015 22:47:34 +0000 (15:47 -0700)]
layers: Fix Windows build issue
Courtney Goeltzenleuchter [Wed, 4 Mar 2015 18:21:23 +0000 (11:21 -0700)]
object-tracker: Do not track GPU object
The GPU object is not something that is created by the app
and thus object tracker layer does not have to track it.
Mike Stroyan [Tue, 3 Mar 2015 23:54:24 +0000 (16:54 -0700)]
layers: allocate enough space for pointer sprintf
Jon Ashburn [Mon, 2 Mar 2015 23:51:38 +0000 (16:51 -0700)]
memTracker: Use local GetProcAddr rather than auto generated one
Clean up pass through functions. Generated GetProcAddr requires drawState
to implement all entrypoints so don't use this generated GPA.
Jon Ashburn [Mon, 2 Mar 2015 18:32:24 +0000 (11:32 -0700)]
drawState: Use local GetProcAddr rather than auto generated one
Clean up pass through functions. Generated GetProcAddr requires drawState
to implement all entrypoints so don't use this generated GPA.
Jon Ashburn [Tue, 3 Mar 2015 22:07:15 +0000 (15:07 -0700)]
layers: if no settings file or call overrides make callback override loging
Default debugAction in layers is to log based on variable init. Make the
overrides work as follows:
1) app calls xglRegisterMsgCallback()
2) settings file
3) Glave (or app) calls to setlayerOption()
Tobin Ehlis [Tue, 3 Mar 2015 20:58:42 +0000 (13:58 -0700)]
layers: Correctly set last bound PSO in DrawState layer
Ian Elliott [Tue, 3 Mar 2015 16:50:57 +0000 (09:50 -0700)]
Win: Cannot use the "dot" functionality yet on Windows.
Mark Lobodzinski [Tue, 3 Mar 2015 02:23:52 +0000 (20:23 -0600)]
layers: Made mem_tracker thread-safe
Brought up to par with DrawState and ObjectTracker.
Ian Elliott [Mon, 2 Mar 2015 21:05:18 +0000 (14:05 -0700)]
Turn on ability to trace on Windows with NVIDIA driver.
I can now trace the "tri" and "cube" demos. Two changes were needed:
1) Must link the programs against XGL.dll instead of XGL.lib (the "XGL" library
instead of "XGLstatic").
2) The glv_MessageStream_SetupHostSocket() function needed to "create" the
lock/critical section that's used in the Glave interconnect code.
Piers Daniell [Sun, 1 Mar 2015 16:32:56 +0000 (09:32 -0700)]
Add NOMINMAX and VC_EXTRALEAN to some windows files
This avoids these headers leaking conflicting Windows symbols to
non-Windows code.
Ian Elliott [Fri, 27 Feb 2015 18:10:59 +0000 (11:10 -0700)]
Win/glave: Remove new compiler warnings on Windows.
Compiling the glvtrace_xgl64.dll library on Windows (see prior commit) resulted
in new warnings, some of which seemed serious (e.g. using "sizeof(void)", which
is 1 on Linux, with GCC, but is 0 on Windows).
Ian Elliott [Fri, 27 Feb 2015 00:01:30 +0000 (17:01 -0700)]
Win/glave: Compile/link the glvtrace_xgl64.dll library on Windows.
Ian Elliott [Thu, 26 Feb 2015 21:34:52 +0000 (14:34 -0700)]
Linux: Must use "__linux__" instead of "PLATFORM_LINUX".
There are some places (e.g. glave) where PLATFORM_LINUX is #define'd, but
normally we need to rely on "__linux__", which is #define'd by the compiler
(i.e. we can rely on it being there).
Chia-I Wu [Mon, 23 Feb 2015 17:41:08 +0000 (10:41 -0700)]
demos/cube: use a single layout
Conflicts:
demos/cube.c
Piers Daniell [Tue, 24 Feb 2015 20:58:47 +0000 (13:58 -0700)]
Get the trace player to work with Windows
This change modifies many of the generators to use "#if
defined(PLATFORM_LINUX) || defined(XCB_NVIDIA)" to choose between using
XCB or WIN32 native.
Ian Elliott [Fri, 20 Feb 2015 21:12:18 +0000 (14:12 -0700)]
xcb: Deal with case of getenv() returning NULL.
At least on Windows, getenv() returns NULL when the environment variable is not
found. This causes a problem inside of "xcb_nvidia.cpp" when a C++ std::string
is assigned the return value of getenv().
Ian Elliott [Thu, 19 Feb 2015 21:26:19 +0000 (14:26 -0700)]
Modify xcb_nvidia/nulldrv to also support nulldrv.
This allows LunarG and others without the NVIDIA XGL driver to use the nulldrv
on Windows.
Piers Daniell [Mon, 23 Feb 2015 23:23:13 +0000 (16:23 -0700)]
Update tri and cube with stage
These changes were cherry-picked from nvidia-dev-
20150218 and
KhronosGroup/GDC-stable.
Jon Ashburn [Tue, 3 Mar 2015 00:12:31 +0000 (17:12 -0700)]
Revert "misc: Add xglRecordMemoryRange entrypoint and use it in Glave"
This reverts commit
fea3e5fc1ef2f3c9e4f06ab5a8d682f89b76377e.
Tobin Ehlis [Mon, 2 Mar 2015 23:09:15 +0000 (16:09 -0700)]
layers: Update last global DS in DrawState when UpdateDescriptors is called
Tobin Ehlis [Mon, 2 Mar 2015 17:16:40 +0000 (10:16 -0700)]
layers: DrawState Cmd Buffer tracking improvements
Add DbgMarker cmds to cmd buffer instruction linked list
Display last 10 touched CBs in dot file
Highlight last touched CB in dot file with green color
Jon Ashburn [Fri, 27 Feb 2015 19:53:41 +0000 (12:53 -0700)]
misc: Add xglRecordMemoryRange entrypoint and use it in Glave
Peter Lohrmann [Fri, 27 Feb 2015 23:35:15 +0000 (15:35 -0800)]
glave: Set layer extension func pointers to NULL when the device is destroyed.
* This prevents invalid memory access if the pointers are referenced after the device is destroyed and before a new one is created.
Courtney Goeltzenleuchter [Thu, 26 Feb 2015 18:40:39 +0000 (11:40 -0700)]
layers: Issue endl at end of output
Courtney Goeltzenleuchter [Thu, 26 Feb 2015 00:53:18 +0000 (17:53 -0700)]
demos: Clean up renderpass and framebuffer
Tobin Ehlis [Fri, 27 Feb 2015 15:48:43 +0000 (08:48 -0700)]
layers: In DrawState track last global pipe state and dump that to dot diagram
Peter Lohrmann [Fri, 27 Feb 2015 16:34:47 +0000 (08:34 -0800)]
Merge ReplayThread change with Detach Replay Window.
Peter Lohrmann [Thu, 26 Feb 2015 18:51:36 +0000 (10:51 -0800)]
glvdebug: Move QReplayWorker into a separate thread.
* In order to achieve this correctly, the QController could not inherit from the QReplayWorker; instead the controller now has a worker object. The QReplayWidget puts the worker on a separate thread.
* Any interaction between the QReplayWorker and the rest of the UI must be done through Qt's signals and slots, which knows how to pass data between threads.
* Performance of replaying within the UI is now on-par with replaying using glvreplay64 from the command line, based on the cube demo. Increasing the validation level will slow down the replay preformance (as expected), and printing of validation messages will also slow down replay performance (as expected).
Mark Lobodzinski [Thu, 26 Feb 2015 21:18:57 +0000 (15:18 -0600)]
layers: Fix null pointer reference in MemTracker
Copy-paste error caused segfault in Cube demo, among others.
Jeremy Hayes [Thu, 26 Feb 2015 22:59:19 +0000 (15:59 -0700)]
glave: Add command buffer diagram.
Mark Lobodzinski [Fri, 27 Feb 2015 00:42:09 +0000 (18:42 -0600)]
layers: Remove spurious assert.
This was unnecessarily crashing the valve tests.
Mark Lobodzinski [Fri, 27 Feb 2015 00:33:10 +0000 (18:33 -0600)]
layers: Fix MemTracker memory leak
Call to string helper function was not freeing returned memory.
Tobin Ehlis [Thu, 26 Feb 2015 19:57:08 +0000 (12:57 -0700)]
layers: Correctly represent Descriptor-related arrays in DrawState dot file
Jon Ashburn [Thu, 26 Feb 2015 18:45:28 +0000 (11:45 -0700)]
glave: cleanup mem_info list as it shrinks during tracing
Mark Lobodzinski [Wed, 25 Feb 2015 21:14:06 +0000 (15:14 -0600)]
layer: Fixed options settings for generated layers, fixed typos
Handling of non-zero default values now also fixed.
Mark Lobodzinski [Thu, 26 Feb 2015 00:11:05 +0000 (18:11 -0600)]
layers: Fix Memtracker fence-related memory leak
MemTracker created internal fence objects to locally track command buffer
completion, but these objects were never destroyed.
Ian Elliott [Thu, 26 Feb 2015 00:40:38 +0000 (17:40 -0700)]
Win: Fix compilation error on Windows (xgl_helper.py).
Visual Studio doesn't like the following code construct:
if (<some test>)
return <something>;
<type> variable [= <intial-value>];
We have to use curly-braces, as in:
if (<some test>) {
return <something>;
}
<type> variable [= <intial-value>];
Ian Elliott [Thu, 26 Feb 2015 00:34:46 +0000 (17:34 -0700)]
Win: layers (draw_state.c): Fix compilation error on Windows.
Visual Studio doesn't like:
static const uint32_t NUM_COLORS = 7;
char* edgeColors[NUM_COLORS];
Instead, we need to do:
char* edgeColors[NUM_COLORS];
Courtney Goeltzenleuchter [Wed, 25 Feb 2015 23:58:34 +0000 (16:58 -0700)]
layers: Track WsiCreatePresentableImage image object
The memory returned by WsiGetPresentableImage is unique
and cannot be freed or unbound by the app. Thus only object tracker
only needs to track the image object.
Courtney Goeltzenleuchter [Thu, 26 Feb 2015 00:13:27 +0000 (17:13 -0700)]
layers: Do not track PHYSICAL_GPUS
The application does not create PHYSICAL_GPU objects
so do not track them.
Courtney Goeltzenleuchter [Thu, 26 Feb 2015 00:12:26 +0000 (17:12 -0700)]
layers: Do not track Queue objects
Queue objects are not created by an application and
thus never destroyed. Thus do not need to track.
Courtney Goeltzenleuchter [Wed, 25 Feb 2015 23:56:00 +0000 (16:56 -0700)]
layers: flush logged output so it's visible immediately
Courtney Goeltzenleuchter [Wed, 25 Feb 2015 23:55:23 +0000 (16:55 -0700)]
demos: Clean up objects after cmd buf built
Courtney Goeltzenleuchter [Wed, 25 Feb 2015 22:13:35 +0000 (15:13 -0700)]
demos: Update to single layout
Courtney Goeltzenleuchter [Wed, 25 Feb 2015 19:49:04 +0000 (12:49 -0700)]
demos: Be sure to initialize pNext
Courtney Goeltzenleuchter [Wed, 25 Feb 2015 19:48:19 +0000 (12:48 -0700)]
demos: Bug fix: Unbind image object
Courtney Goeltzenleuchter [Wed, 25 Feb 2015 18:48:28 +0000 (11:48 -0700)]
demos: Be sure to request correct memory type
Courtney Goeltzenleuchter [Wed, 25 Feb 2015 18:46:58 +0000 (11:46 -0700)]
demos: Add use_staging option
Specifying --use_staging as a command line argument to tri
will force tri to upload the texture via a linear mapped staging buffer.
Courtney Goeltzenleuchter [Tue, 17 Feb 2015 19:54:31 +0000 (12:54 -0700)]
cube: Use staging buffer for texture upload
Courtney Goeltzenleuchter [Sat, 14 Feb 2015 01:20:24 +0000 (18:20 -0700)]
demos: Integrate feedback from NVIDIA
Courtney Goeltzenleuchter [Sat, 14 Feb 2015 00:52:46 +0000 (17:52 -0700)]
demos: Refactor to simplify and optimize
Will now check if texturing is supported on linear, CPU accessible
textures. If so, just uses that. If not, will use a staging buffer
to copy to optimized layout texture image.
Jon Ashburn [Wed, 25 Feb 2015 19:45:23 +0000 (12:45 -0700)]
layers: Check for NULL pointer with dynamic_display()
Jon Ashburn [Wed, 25 Feb 2015 20:51:07 +0000 (13:51 -0700)]
glave: Fix locking of mem_info entries in UnmapMemory
The retruned entry pointer could change after lock released in the case the mem info list was realloc.
Tobin Ehlis [Wed, 25 Feb 2015 23:34:54 +0000 (16:34 -0700)]
layers: Fix DrawState buffer over-run when clearing descriptors
Tobin Ehlis [Wed, 25 Feb 2015 22:01:21 +0000 (15:01 -0700)]
layers: Drawstate color descriptor edges and correctly clear slot mappings
Mark Lobodzinski [Wed, 25 Feb 2015 18:23:20 +0000 (12:23 -0600)]
layers: Fix layer config file options
Needed to end up with enums here, added this option.
Mark Lobodzinski [Wed, 25 Feb 2015 18:16:04 +0000 (12:16 -0600)]
layers: Validation check for CPU_VISIBLE bit set on MapMemory calls
Tobin Ehlis [Wed, 25 Feb 2015 18:46:39 +0000 (11:46 -0700)]
layers: Fix uninitialized variable in DrawState.
Chia-I Wu [Wed, 25 Feb 2015 18:52:31 +0000 (11:52 -0700)]
update BUILD.md for imported libdrm
Two new dependencies introduced by libdrm: libpciaccess-dev and
libpthread-stubs0-dev.
Tobin Ehlis [Wed, 25 Feb 2015 18:30:27 +0000 (11:30 -0700)]
glave: For color array params, correctly size trace buffer based on array type and size
Chia-I Wu [Wed, 25 Feb 2015 07:11:38 +0000 (15:11 +0800)]
cmake: remove unused FindDRM.cmake
Chia-I Wu [Wed, 25 Feb 2015 04:45:34 +0000 (12:45 +0800)]
intel: add and link with libintelkmd.a
Add cmake rules to build libintelkmd.a, which implements our KMD interface
using our own stripped-down libdrm. This removes libdrm dependency.
Chia-I Wu [Mon, 23 Feb 2015 17:41:08 +0000 (10:41 -0700)]
demos/cube: use a single layout
Courtney Goeltzenleuchter [Thu, 12 Feb 2015 01:17:22 +0000 (18:17 -0700)]
demos: Updated tri to use staging buffer for texture
Courtney Goeltzenleuchter [Tue, 17 Feb 2015 16:48:44 +0000 (09:48 -0700)]
cube: Fix leaking resources
Demo was leaking Framebuffers and RenderPasses every time a new command
buffer was created (every frame). Now app creates only two command
buffers (one for each render target) and re-uses those command buffers
to draw the cube.
Tobin Ehlis [Tue, 24 Feb 2015 22:40:22 +0000 (15:40 -0700)]
layers: Add simple Cmd Buffer dot file dump to DrawState