Age | Commit message (Collapse) | Author |
|
The End command is always immediately followed by SubmitAndReset. This
CL merges the two methods and removes the End calls.
|
|
This Cl wraps the begin/end render pass calls inside a RAII object.
This removes the possibility of having called begin render pass without
subsequently calling end.
|
|
This CL adds a new subclass of Command, PipelineCommand. The Probe
commands do not have pipelines so they inherit from Command. Other
commands inherit from PipelineCommand.
|
|
This CL updates the probe commands to contain the buffers needed instead
of providing the pipeline.
|
|
This Cl integrates the PPM test into the test suite. Part of this work
involved updating the conversion code to return a vector<uint8_t>
instead of a std::string.
|
|
|
|
|
|
This CL adds the EXPECT parsing for EQ_RGB and EQ_RGBA expectations.
This is enough to allow a clear.amber script to be written.
Issue #345.
|
|
This CL moves Shutdown methods to destructors where possible.
|
|
|
|
This CL removes the parent class from PushConstant. There was nothing in
Resource which the PushConstant code used othe than storing a few
variables.
|
|
This CL moves code from the Resource class to the single subclass which
uses that code. This simplifies the resource class and makes it clearer
where memory is used.
|
|
Similar to the vulkan/transfer_buffer class the transfer_image class is
responsible for transfering data to/from the GPU for images. This CL
renames Image to TransferImage to make that clearer.
|
|
This Cl removes the unused GetFormatForAttachment method.
|
|
There are currently a lot of buffers in the system. This CL renames the
vulkan/buffer class to be vulkan/transfer_buffer. This makes it a bit
clearer that this is used to transfer data to/from the GPU.
|
|
This Cl stores the relevant data into the amber::Buffer and removes the
need to call GetDescriptorInfo to retrieve the data.
|
|
This CL removes the GetFrameBufferInfo method and stores the various
bits of information into the Buffer objects.
|
|
This CL extends the ProbeCommand to contain the buffer to probe against.
With VkScript there is a generated image buffer which is used. For
AmberScript the buffer is provided in the EXPECT command.
|
|
Previously the buffer type existed in both the Buffer and
Pipeline::BufferInfo. These buffer types could diverge, which could
cause issues with thinking the buffer is of an incorrect type.
This CL removes the buffer type from BufferInfo and always uses the
buffer to retrieve the type.
|
|
Add the necessary Delegate methods to implement timing of graphics API
calls.
|
|
This CL fixes the colour attachment code to set the colour attachment
into the requested location, not the order they were attached. This
allows setting the locations out of order.
Note, the locations must be a complete set of numbers starting from 0.
|
|
|
|
This adds a Delegate which enables users of the amber library to
define some hook functions as they like. The first usage here is a
Delegate::Log() function to log graphics API calls.
In practice, a pointer to the delegate object is passed at engine
creation and the Vulkan engine eventually pass it to
LoadVulkanPointers() which calls the functions produced by
update_vk_wrappers.py. This enable to choose, when loading the Vulkan
functions, whether to load a straighforward wrapper to the API
command, or to load a lambda that surround the API command with calls
to the delegate methods.
The --log-graphics-calls flag in the samples sets the delegate to
produce a log of API calls.
|
|
This CL updates the vulkan engine to allow having multiple image
attachments. Currently the frontend code just works with the first image
attachment.
|
|
This CL adds a flag AMBER_USE_LOCAL_VULKAN which if set when running cmake will have amber use the vulkan header and loaders out of the third_party directory. This should let amber try to build on a system without vulkan so the build can be tested on the bots.
|
|
This CL adds parsing for the CLEAR command in AmberScript.
|
|
This CL removes the SetBuffer method and inlines the parts into the
CreatePipeline method as necessary.
|
|
This CL adds parsing of the RUN commands for compute and DRAW_RECT
instances to AmberScript.
|
|
|
|
This CL updates amber (and the vulkan backend) to work with multiple
pipelines. The vulkan backend is changed to store a PipelineData
structure with the colour/depth formats, vertex data and the vulkan
pipeline for a given amber::Pipeline.
Each command is changed to take the pipeline it is associated with,
those pipelines are used when executing the commands.
|
|
This CL adds a update_vk_wrappers.py script which is executed during the
build. The script will generate src/vk-wrappers.h and
src/vk-wrappers.inc files into the binary directory. The .h file lists
the struct entries for the VulkanPtr struct.
The vk-wrappers.inc file contains the code to load the vulkan function
pointers. If the vk.xml file is found, the wrappers will be lambdas, if
vk.xml is not found they're straight function pointers. This should
allow us to work with the CTS as we do now.
Issue #324.
|
|
It determines if the engine satisfies all requirements declared
in the recipe.
|
|
Replace assertions by proper Result() returns
|
|
Currently the pipeline_layout and pipeline _may_ get destroyed between
compute/draw calls. As such, there is a bunch of code to check and
re-create if needed.
This Cl changes the code to no longer store pipeline_ or
pipeline_layout_ in the vulkan/pipepline object. Instead, both the
layout and pipeline are created each draw/compute call.
|
|
This CL cleans up various things in the src/vulkan directory. Code is
moved closer to usage if a subclass is the only caller. CommandBuffer
and CommandPool are passed instead of VkCommandBuffer and VkCommandPool.
|
|
This Cl updates the sample app to allow dumping of image and buffer data
even if the probes fail to execute.
Fixes #314.
|
|
This CL adds parsing for the `fbsize 200 200` requirement to set the
framebuffer size for a given script.
Fixes #12.
|
|
This CL adds the two requirements:
* VariablePointerFeatures.variablePointers
* VariablePointerFeatures.variablePointersStorageBuffer
Variable pointers requires VK_KHR_get_physical_properties2 and the
variable pointer extension are both requested.
|
|
|
|
This CL keeps the required features as strings as long as possible. This
will allow extending the list of features with additional entries.
|
|
Instead of allocating an array of uint8_t's and storing into a
unique_ptr, this CL changes the PushConstant code to have a
std::vector<uint8_t> instead.
Issue #277.
|
|
This CL adds the code to query for physical properties2 if the
VK_KHR_get_physical_device_properties2 extension is required.
|
|
This CL adds the necessary code to differentiate that
VK_KHR_get_physical_device_properties2 is an instance extension and not
a device extension.
|
|
This CL adds a -ps option to the sample app to allow parsing the script
and creating the pipeline. This will cause the driver SPIR-V compiler to
execute. The script is not run against the engine (and the engine is
not created).
|
|
This CL fixes the -B flag to default to 0:0 if not provided. It also
fixes the code to use : as the separator instead of ,
|
|
This CL updates the image dumping code to the new default framebuffer
format of B8G8R8A8_UNORM.
|
|
This CL adds support to dump the contents of compute buffers to a file.
Fixes #36
|
|
This CL moves the code to setup shaders and buffers out of the executor
and into the CreatePipeline method. This way each engine can deterine
how to setup the data needed.
|
|
it if it has not been initialized. (#295)
|
|
|