diff options
author | [email protected] <[email protected]> | 2018-02-22 18:02:18 -0800 |
---|---|---|
committer | Dave Airlie <[email protected]> | 2018-03-05 13:29:39 +1000 |
commit | fe0647df5a70a4954d9399f0860a12ff691a88ee (patch) | |
tree | 3ae3ba13740ca4cdf64794bf0a136ab1331f26f5 /src/gallium/drivers/virgl/virgl_hw.h | |
parent | 9283cf2ad19b0eacc20b9aa5984bac077e9c475c (diff) |
virgl: add offset alignment values to to v2 caps struct
glBindBufferRange(..) in vrend_draw_bind_ubo is failing with
more than one uniform block. This is due to improper alignment
of the start of the second block. Let's query the proper
alignment from the driver and pass it back to Mesa.
Let's query for the texture alignment too, even though the Virgl
renderer doesn't call glTexBufferRange yet.
The default values are the widest workable range possible (for example,
GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT on Nvidia is 256).
Fixes:
dEQP-GLES3.functional.ubo.* on Nvidia
Example test:
dEQP-GLES3.functional.ubo.multi_basic_types.single_buffer.shared_vertex
Note: This is based on "virgl: reduce some default capset limits.",
which hasn't landed in Mesa yet but should relatively soon.
Signed-off-by: Dave Airlie <[email protected]>
Diffstat (limited to 'src/gallium/drivers/virgl/virgl_hw.h')
-rw-r--r-- | src/gallium/drivers/virgl/virgl_hw.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/gallium/drivers/virgl/virgl_hw.h b/src/gallium/drivers/virgl/virgl_hw.h index 833ab91eee7..93849c03ddd 100644 --- a/src/gallium/drivers/virgl/virgl_hw.h +++ b/src/gallium/drivers/virgl/virgl_hw.h @@ -284,6 +284,8 @@ struct virgl_caps_v2 { int32_t max_texel_offset; int32_t min_texture_gather_offset; int32_t max_texture_gather_offset; + uint32_t texture_buffer_offset_alignment; + uint32_t uniform_buffer_offset_alignment; }; union virgl_caps { |