mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-31 09:50:08 +01:00
mesa/glspirv: Add struct gl_spirv_module
v2: * Make the SPIR-V module struct part of a larger gl_shader_spirv_data
struct that will be introduced later, and don't reference it directly
in gl_shader. (Eduardo Lima)
* Readability improvements (Ian Romanick)
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
This commit is contained in:
parent
46b21b8f90
commit
74f98ab76f
2 changed files with 33 additions and 0 deletions
|
|
@ -25,6 +25,23 @@
|
|||
|
||||
#include "errors.h"
|
||||
|
||||
#include "util/u_atomic.h"
|
||||
|
||||
void
|
||||
_mesa_spirv_module_reference(struct gl_spirv_module **dest,
|
||||
struct gl_spirv_module *src)
|
||||
{
|
||||
struct gl_spirv_module *old = *dest;
|
||||
|
||||
if (old && p_atomic_dec_zero(&old->RefCount))
|
||||
free(old);
|
||||
|
||||
*dest = src;
|
||||
|
||||
if (src)
|
||||
p_atomic_inc(&src->RefCount);
|
||||
}
|
||||
|
||||
void GLAPIENTRY
|
||||
_mesa_SpecializeShaderARB(GLuint shader,
|
||||
const GLchar *pEntryPoint,
|
||||
|
|
|
|||
|
|
@ -30,6 +30,22 @@
|
|||
extern "C" {
|
||||
#endif
|
||||
|
||||
/**
|
||||
* A SPIR-V module contains the raw SPIR-V binary as set by ShaderBinary.
|
||||
*
|
||||
* It is reference-counted, because the same module can be attached to multiple
|
||||
* shader objects simultaneously.
|
||||
*/
|
||||
struct gl_spirv_module {
|
||||
unsigned RefCount;
|
||||
GLint Length;
|
||||
char Binary[0];
|
||||
};
|
||||
|
||||
void
|
||||
_mesa_spirv_module_reference(struct gl_spirv_module **dest,
|
||||
struct gl_spirv_module *src);
|
||||
|
||||
/**
|
||||
* \name API functions
|
||||
*/
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue