2018-06-23 17:14:35 +02:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include "dxbc_options.h"
|
|
|
|
|
|
|
|
namespace dxvk {
|
|
|
|
|
2018-09-09 23:14:00 +02:00
|
|
|
/**
|
|
|
|
* \brief Tessellation info
|
|
|
|
*
|
|
|
|
* Stores the maximum tessellation factor
|
|
|
|
* to export from tessellation shaders.
|
|
|
|
*/
|
|
|
|
struct DxbcTessInfo {
|
|
|
|
float maxTessFactor;
|
|
|
|
};
|
|
|
|
|
2018-06-23 20:19:46 +02:00
|
|
|
/**
|
|
|
|
* \brief Xfb capture entry
|
|
|
|
*
|
|
|
|
* Stores an output variable to capture,
|
|
|
|
* as well as the buffer to write it to.
|
|
|
|
*/
|
|
|
|
struct DxbcXfbEntry {
|
|
|
|
const char* semanticName;
|
|
|
|
uint32_t semanticIndex;
|
|
|
|
uint32_t componentIndex;
|
|
|
|
uint32_t componentCount;
|
|
|
|
uint32_t streamId;
|
|
|
|
uint32_t bufferId;
|
|
|
|
uint32_t offset;
|
|
|
|
};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* \brief Xfb info
|
|
|
|
*
|
|
|
|
* Stores capture entries and output buffer
|
|
|
|
* strides. This structure must only be
|
|
|
|
* defined if \c entryCount is non-zero.
|
|
|
|
*/
|
|
|
|
struct DxbcXfbInfo {
|
|
|
|
uint32_t entryCount;
|
|
|
|
DxbcXfbEntry entries[128];
|
|
|
|
uint32_t strides[4];
|
|
|
|
int32_t rasterizedStream;
|
|
|
|
};
|
2018-09-09 23:14:00 +02:00
|
|
|
|
2018-06-23 17:14:35 +02:00
|
|
|
/**
|
|
|
|
* \brief Shader module info
|
|
|
|
*
|
|
|
|
* Stores information which may affect shader compilation.
|
|
|
|
* This data can be supplied by the client API implementation.
|
|
|
|
*/
|
|
|
|
struct DxbcModuleInfo {
|
2018-09-09 23:14:00 +02:00
|
|
|
DxbcOptions options;
|
|
|
|
DxbcTessInfo* tess;
|
2018-06-23 20:19:46 +02:00
|
|
|
DxbcXfbInfo* xfb;
|
2018-06-23 17:14:35 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
}
|