RetroArch
Macros | Functions | Variables
spirv_msl.cpp File Reference
#include "spirv_msl.hpp"
#include "GLSL.std.450.h"
#include <algorithm>
#include <assert.h>
#include <numeric>
Include dependency graph for spirv_msl.cpp:

Macros

#define MSL_BOP(op)   emit_binary_op(ops[0], ops[1], ops[2], ops[3], #op)
 
#define MSL_BOP_CAST(op, type)   emit_binary_op_cast(ops[0], ops[1], ops[2], ops[3], #op, type, opcode_is_sign_invariant(opcode))
 
#define MSL_UOP(op)   emit_unary_op(ops[0], ops[1], ops[2], #op)
 
#define MSL_QFOP(op)   emit_quaternary_func_op(ops[0], ops[1], ops[2], ops[3], ops[4], ops[5], #op)
 
#define MSL_TFOP(op)   emit_trinary_func_op(ops[0], ops[1], ops[2], ops[3], ops[4], #op)
 
#define MSL_BFOP(op)   emit_binary_func_op(ops[0], ops[1], ops[2], ops[3], #op)
 
#define MSL_BFOP_CAST(op, type)   emit_binary_func_op_cast(ops[0], ops[1], ops[2], ops[3], #op, type, opcode_is_sign_invariant(opcode))
 
#define MSL_UFOP(op)   emit_unary_func_op(ops[0], ops[1], ops[2], #op)
 
#define MSL_AFMO_IMPL(op, valsrc)
 
#define MSL_AFMO(op)   MSL_AFMO_IMPL(op, ops[5])
 
#define MSL_AFMIO(op)   MSL_AFMO_IMPL(op, 1)
 
#define MSL_ImgQry(qrytype)
 

Functions

static string create_sampler_address (const char *prefix, MSLSamplerAddress addr)
 

Variables

static const uint32_t k_unknown_location = ~0u
 

Macro Definition Documentation

◆ MSL_AFMIO

#define MSL_AFMIO (   op)    MSL_AFMO_IMPL(op, 1)

◆ MSL_AFMO

#define MSL_AFMO (   op)    MSL_AFMO_IMPL(op, ops[5])

◆ MSL_AFMO_IMPL

#define MSL_AFMO_IMPL (   op,
  valsrc 
)
Value:
do \
{ \
uint32_t result_type = ops[0]; \
uint32_t id = ops[1]; \
uint32_t ptr = ops[2]; \
uint32_t mem_sem = ops[4]; \
uint32_t val = valsrc; \
emit_atomic_func_op(result_type, id, "atomic_fetch_" #op "_explicit", mem_sem, mem_sem, false, ptr, val); \
} while (false)
const GLvoid * ptr
Definition: nx_glsym.h:242
GLuint GLfloat * val
Definition: glext.h:7847
set set set set set set set macro pixldst1 op
Definition: pixman-arm-neon-asm.h:54
static sys_sem mem_sem
Definition: mem.c:79

◆ MSL_BFOP

#define MSL_BFOP (   op)    emit_binary_func_op(ops[0], ops[1], ops[2], ops[3], #op)

◆ MSL_BFOP_CAST

#define MSL_BFOP_CAST (   op,
  type 
)    emit_binary_func_op_cast(ops[0], ops[1], ops[2], ops[3], #op, type, opcode_is_sign_invariant(opcode))

◆ MSL_BOP

#define MSL_BOP (   op)    emit_binary_op(ops[0], ops[1], ops[2], ops[3], #op)

◆ MSL_BOP_CAST

#define MSL_BOP_CAST (   op,
  type 
)    emit_binary_op_cast(ops[0], ops[1], ops[2], ops[3], #op, type, opcode_is_sign_invariant(opcode))

◆ MSL_ImgQry

#define MSL_ImgQry (   qrytype)
Value:
do \
{ \
uint32_t rslt_type_id = ops[0]; \
auto &rslt_type = get<SPIRType>(rslt_type_id); \
uint32_t id = ops[1]; \
uint32_t img_id = ops[2]; \
string img_exp = to_expression(img_id); \
string expr = type_to_glsl(rslt_type) + "(" + img_exp + ".get_num_" #qrytype "())"; \
emit_op(rslt_type_id, id, expr, should_forward(img_id)); \
} while (false)
static void expr(LexState *ls, expdesc *v)
Definition: lparser.c:1078

◆ MSL_QFOP

#define MSL_QFOP (   op)    emit_quaternary_func_op(ops[0], ops[1], ops[2], ops[3], ops[4], ops[5], #op)

◆ MSL_TFOP

#define MSL_TFOP (   op)    emit_trinary_func_op(ops[0], ops[1], ops[2], ops[3], ops[4], #op)

◆ MSL_UFOP

#define MSL_UFOP (   op)    emit_unary_func_op(ops[0], ops[1], ops[2], #op)

◆ MSL_UOP

#define MSL_UOP (   op)    emit_unary_op(ops[0], ops[1], ops[2], #op)

Function Documentation

◆ create_sampler_address()

static string create_sampler_address ( const char *  prefix,
MSLSamplerAddress  addr 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ k_unknown_location

const uint32_t k_unknown_location = ~0u
static