Wednesday 19 August 2015

Week 12 - Piglit tests

I spent the last week before soft pencils down on implementing OpenCL image and sampler type support for piglit's program tester, and adding tests to check image builtins. The configuration parser had to be modified to accept image and sampler arguments. The syntax of the new argument types are as follows:

  • Image argument:
    (arg_in|arg_out) argument_index image pixel_type
        (values|random|repeat values)
        type (2d|3d)
        image_width image_width
        image_height image_width
        image_channel_order image_channel_order
        image_channel_data_type image_channel_data_type
        [tolerance (tolerance|ulp ulp)]
    
  • Sampler argument:
    (arg_in|arg_out) argument_index sampler
        normalized_coords (true|false)
        addressing_mode (none|clamp_to_edge|repeat|mirrored_repeat)
        filter_mode (nearest|linear)
    
Currently only 2d arguments are supported. The channel order and data type may take any of the appropriate OpenCL constant names without the CL_ prefix (e.g. image_channel_order RGBA). For examples see the following tests:

I've sumbmitted the changes to piglit, but also uploaded it to a GitHub repo.

In the next post I'm going to summarize the new mesa, llvm and libclc features implemented during the summer.