Skip to content

AmberScript: Support a buffer with values of multiple types #544

@jaebaek

Description

@jaebaek

Since the current AmberScript has only the following way to initialize a buffer with specific data:

BUFFER {name} DATA_TYPE {type} DATA
_value_+
END

it is impossible test the following case:

#!amber

SHADER compute kComputeShader HLSL
struct struct_with_bool {
  bool2 elem_v2bool;
  int2 elem_v2int;
  float2 elem_v2float;
  bool elem_bool;
  int elem_int;
  float elem_float;
};

ConsumeStructuredBuffer<struct_with_bool> consume_struct_with_bool;
AppendStructuredBuffer<bool> append_bool;
AppendStructuredBuffer<float> append_float;
AppendStructuredBuffer<int> append_int;

void main() {
  append_bool.Append(consume_struct_with_bool.Consume().elem_bool);
  append_int.Append(consume_struct_with_bool.Consume().elem_int);
  append_float.Append(consume_struct_with_bool.Consume().elem_float);
  append_v2bool.Append(consume_struct_with_bool.Consume().elem_v2bool);
  append_v2int.Append(consume_struct_with_bool.Consume().elem_v2int);
  append_v2float.Append(consume_struct_with_bool.Consume().elem_v2float);
}
END

BUFFER kConsumeBuffer DATA_TYPE float DATA
4.0 19.0
END
BUFFER kConsumeBufferIndex DATA_TYPE uint32 DATA
2
END

...

Metadata

Metadata

Assignees

No one assigned

    Labels

    amberscriptWork related to AmberScriptenhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions