For the series: Reviewed-by: Marek Olšák <marek.ol...@amd.com>
Marek On Thu, Jan 26, 2017 at 8:09 PM, Nicolai Hähnle <nhaeh...@gmail.com> wrote: > From: Nicolai Hähnle <nicolai.haeh...@amd.com> > > All of these have had support for the TGSI opcodes since before most of > the glsl compiler work landed. > > Also update the docs accordingly, including the missing note about i965. > --- > docs/features.txt | 2 +- > docs/relnotes/17.1.0.html | 61 > ++++++++++++++++++++++++++++++++ > src/gallium/drivers/llvmpipe/lp_screen.c | 2 +- > src/gallium/drivers/radeonsi/si_pipe.c | 4 +-- > src/gallium/drivers/softpipe/sp_screen.c | 2 +- > 5 files changed, 66 insertions(+), 5 deletions(-) > create mode 100644 docs/relnotes/17.1.0.html > > diff --git a/docs/features.txt b/docs/features.txt > index aff0016..55b1fbb 100644 > --- a/docs/features.txt > +++ b/docs/features.txt > @@ -276,21 +276,21 @@ GLES3.2, GLSL ES 3.2 -- all DONE: i965/gen9+ > GL_OES_texture_storage_multisample_2d_array DONE (all drivers > that support GL_ARB_texture_multisample) > > Khronos, ARB, and OES extensions that are not part of any OpenGL or OpenGL > ES version: > > GL_ARB_bindless_texture started (airlied) > GL_ARB_cl_event not started > GL_ARB_compute_variable_group_size DONE (nvc0, radeonsi) > GL_ARB_ES3_2_compatibility DONE (i965/gen8+) > GL_ARB_fragment_shader_interlock not started > GL_ARB_gl_spirv not started > - GL_ARB_gpu_shader_int64 started (airlied for > core and Gallium, idr for i965) > + GL_ARB_gpu_shader_int64 DONE (i965/gen8+, > radeonsi, softpipe, llvmpipe) > GL_ARB_indirect_parameters DONE (nvc0, radeonsi) > GL_ARB_parallel_shader_compile not started, but > Chia-I Wu did some related work in 2014 > GL_ARB_pipeline_statistics_query DONE (i965, nvc0, > radeonsi, softpipe, swr) > GL_ARB_post_depth_coverage DONE (i965) > GL_ARB_robustness_isolation not started > GL_ARB_sample_locations not started > GL_ARB_seamless_cubemap_per_texture DONE (i965, nvc0, > radeonsi, r600, softpipe, swr) > GL_ARB_shader_atomic_counter_ops DONE (nvc0, > radeonsi, softpipe) > GL_ARB_shader_ballot not started > GL_ARB_shader_clock DONE (i965/gen7+) > diff --git a/docs/relnotes/17.1.0.html b/docs/relnotes/17.1.0.html > new file mode 100644 > index 0000000..1b5535b > --- /dev/null > +++ b/docs/relnotes/17.1.0.html > @@ -0,0 +1,61 @@ > +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" > "http://www.w3.org/TR/html4/loose.dtd"> > +<html lang="en"> > +<head> > + <meta http-equiv="content-type" content="text/html; charset=utf-8"> > + <title>Mesa Release Notes</title> > + <link rel="stylesheet" type="text/css" href="../mesa.css"> > +</head> > +<body> > + > +<div class="header"> > + <h1>The Mesa 3D Graphics Library</h1> > +</div> > + > +<iframe src="../contents.html"></iframe> > +<div class="content"> > + > +<h1>Mesa 17.1.0 Release Notes / TBD</h1> > + > +<p> > +Mesa 17.1.0 is a new development release. > +People who are concerned with stability and reliability should stick > +with a previous release or wait for Mesa 17.1.1. > +</p> > +<p> > +Mesa 17.1.0 implements the OpenGL 4.5 API, but the version reported by > +glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) / > +glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used. > +Some drivers don't support all the features required in OpenGL 4.5. OpenGL > +4.5 is <strong>only</strong> available if requested at context creation > +because compatibility contexts are not supported. > +</p> > + > + > +<h2>SHA256 checksums</h2> > +<pre> > +TBD. > +</pre> > + > + > +<h2>New features</h2> > + > +<p> > +Note: some of the new features are only available with certain drivers. > +</p> > + > +<ul> > +<li>GL_ARB_gpu_shader_int64 on i965/gen8+, radeonsi, softpipe, llvmpipe</li> > +</ul> > + > +<h2>Bug fixes</h2> > + > +<ul> > +</ul> > + > +<h2>Changes</h2> > + > +TBD. > + > +</div> > +</body> > +</html> > diff --git a/src/gallium/drivers/llvmpipe/lp_screen.c > b/src/gallium/drivers/llvmpipe/lp_screen.c > index 6ef22b8..0982c35 100644 > --- a/src/gallium/drivers/llvmpipe/lp_screen.c > +++ b/src/gallium/drivers/llvmpipe/lp_screen.c > @@ -260,20 +260,21 @@ llvmpipe_get_param(struct pipe_screen *screen, enum > pipe_cap param) > case PIPE_CAP_TGSI_VS_WINDOW_SPACE_POSITION: > return 1; > case PIPE_CAP_TGSI_FS_FINE_DERIVATIVE: > return 0; > case PIPE_CAP_SAMPLER_VIEW_TARGET: > return 1; > case PIPE_CAP_FAKE_SW_MSAA: > return 1; > case PIPE_CAP_CONDITIONAL_RENDER_INVERTED: > case PIPE_CAP_TGSI_ARRAY_COMPONENTS: > + case PIPE_CAP_INT64: > return 1; > > case PIPE_CAP_VENDOR_ID: > return 0xFFFFFFFF; > case PIPE_CAP_DEVICE_ID: > return 0xFFFFFFFF; > case PIPE_CAP_ACCELERATED: > return 0; > case PIPE_CAP_VIDEO_MEMORY: { > /* XXX: Do we want to return the full amount fo system memory ? */ > @@ -336,21 +337,20 @@ llvmpipe_get_param(struct pipe_screen *screen, enum > pipe_cap param) > case PIPE_CAP_PRIMITIVE_RESTART_FOR_PATCHES: > case PIPE_CAP_TGSI_VOTE: > case PIPE_CAP_MAX_WINDOW_RECTANGLES: > case PIPE_CAP_POLYGON_OFFSET_UNITS_UNSCALED: > case PIPE_CAP_VIEWPORT_SUBPIXEL_BITS: > case PIPE_CAP_TGSI_CAN_READ_OUTPUTS: > case PIPE_CAP_NATIVE_FENCE_FD: > case PIPE_CAP_GLSL_OPTIMIZE_CONSERVATIVELY: > case PIPE_CAP_TGSI_FS_FBFETCH: > case PIPE_CAP_TGSI_MUL_ZERO_WINS: > - case PIPE_CAP_INT64: > return 0; > } > /* should only get here on unhandled cases */ > debug_printf("Unexpected PIPE_CAP %d query\n", param); > return 0; > } > > static int > llvmpipe_get_shader_param(struct pipe_screen *screen, unsigned shader, enum > pipe_shader_cap param) > { > diff --git a/src/gallium/drivers/radeonsi/si_pipe.c > b/src/gallium/drivers/radeonsi/si_pipe.c > index 9f3cd05..1fe8b9f 100644 > --- a/src/gallium/drivers/radeonsi/si_pipe.c > +++ b/src/gallium/drivers/radeonsi/si_pipe.c > @@ -406,21 +406,22 @@ static int si_get_param(struct pipe_screen* pscreen, > enum pipe_cap param) > case PIPE_CAP_TGSI_PACK_HALF_FLOAT: > case PIPE_CAP_FRAMEBUFFER_NO_ATTACHMENT: > case PIPE_CAP_ROBUST_BUFFER_ACCESS_BEHAVIOR: > case PIPE_CAP_GENERATE_MIPMAP: > case PIPE_CAP_POLYGON_OFFSET_UNITS_UNSCALED: > case PIPE_CAP_STRING_MARKER: > case PIPE_CAP_CLEAR_TEXTURE: > case PIPE_CAP_CULL_DISTANCE: > case PIPE_CAP_TGSI_ARRAY_COMPONENTS: > case PIPE_CAP_TGSI_CAN_READ_OUTPUTS: > - case PIPE_CAP_GLSL_OPTIMIZE_CONSERVATIVELY: > + case PIPE_CAP_GLSL_OPTIMIZE_CONSERVATIVELY: > + case PIPE_CAP_INT64: > return 1; > > case PIPE_CAP_RESOURCE_FROM_USER_MEMORY: > return !SI_BIG_ENDIAN && sscreen->b.info.has_userptr; > > case PIPE_CAP_DEVICE_RESET_STATUS_QUERY: > return (sscreen->b.info.drm_major == 2 && > sscreen->b.info.drm_minor >= 43) || > sscreen->b.info.drm_major == 3; > > @@ -459,21 +460,20 @@ static int si_get_param(struct pipe_screen* pscreen, > enum pipe_cap param) > case PIPE_CAP_USER_VERTEX_BUFFERS: > case PIPE_CAP_FAKE_SW_MSAA: > case PIPE_CAP_TEXTURE_GATHER_OFFSETS: > case PIPE_CAP_VERTEXID_NOBASE: > case PIPE_CAP_PRIMITIVE_RESTART_FOR_PATCHES: > case PIPE_CAP_TGSI_VOTE: > case PIPE_CAP_MAX_WINDOW_RECTANGLES: > case PIPE_CAP_NATIVE_FENCE_FD: > case PIPE_CAP_TGSI_FS_FBFETCH: > case PIPE_CAP_TGSI_MUL_ZERO_WINS: > - case PIPE_CAP_INT64: > return 0; > > case PIPE_CAP_QUERY_BUFFER_OBJECT: > return si_have_tgsi_compute(sscreen); > > case PIPE_CAP_DRAW_PARAMETERS: > case PIPE_CAP_MULTI_DRAW_INDIRECT: > case PIPE_CAP_MULTI_DRAW_INDIRECT_PARAMS: > return sscreen->has_draw_indirect_multi; > > diff --git a/src/gallium/drivers/softpipe/sp_screen.c > b/src/gallium/drivers/softpipe/sp_screen.c > index f5216b0..ec530a4 100644 > --- a/src/gallium/drivers/softpipe/sp_screen.c > +++ b/src/gallium/drivers/softpipe/sp_screen.c > @@ -158,20 +158,21 @@ softpipe_get_param(struct pipe_screen *screen, enum > pipe_cap param) > case PIPE_CAP_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION: > return 0; > case PIPE_CAP_COMPUTE: > return 1; > case PIPE_CAP_USER_VERTEX_BUFFERS: > case PIPE_CAP_USER_INDEX_BUFFERS: > case PIPE_CAP_USER_CONSTANT_BUFFERS: > case PIPE_CAP_STREAM_OUTPUT_PAUSE_RESUME: > case PIPE_CAP_STREAM_OUTPUT_INTERLEAVE_BUFFERS: > case PIPE_CAP_TGSI_VS_LAYER_VIEWPORT: > + case PIPE_CAP_INT64: > return 1; > case PIPE_CAP_CONSTANT_BUFFER_OFFSET_ALIGNMENT: > return 16; > case PIPE_CAP_TGSI_CAN_COMPACT_CONSTANTS: > case PIPE_CAP_VERTEX_BUFFER_OFFSET_4BYTE_ALIGNED_ONLY: > case PIPE_CAP_VERTEX_BUFFER_STRIDE_4BYTE_ALIGNED_ONLY: > case PIPE_CAP_VERTEX_ELEMENT_SRC_OFFSET_4BYTE_ALIGNED_ONLY: > case PIPE_CAP_TEXTURE_MULTISAMPLE: > return 0; > case PIPE_CAP_MIN_MAP_BUFFER_ALIGNMENT: > @@ -286,21 +287,20 @@ softpipe_get_param(struct pipe_screen *screen, enum > pipe_cap param) > case PIPE_CAP_PRIMITIVE_RESTART_FOR_PATCHES: > case PIPE_CAP_TGSI_VOTE: > case PIPE_CAP_MAX_WINDOW_RECTANGLES: > case PIPE_CAP_POLYGON_OFFSET_UNITS_UNSCALED: > case PIPE_CAP_VIEWPORT_SUBPIXEL_BITS: > case PIPE_CAP_TGSI_CAN_READ_OUTPUTS: > case PIPE_CAP_NATIVE_FENCE_FD: > case PIPE_CAP_GLSL_OPTIMIZE_CONSERVATIVELY: > case PIPE_CAP_TGSI_FS_FBFETCH: > case PIPE_CAP_TGSI_MUL_ZERO_WINS: > - case PIPE_CAP_INT64: > return 0; > case PIPE_CAP_SHADER_BUFFER_OFFSET_ALIGNMENT: > return 4; > } > /* should only get here on unhandled cases */ > debug_printf("Unexpected PIPE_CAP %d query\n", param); > return 0; > } > > static int > -- > 2.7.4 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev